2017-10-01 2 views
0

私はゲームを作っています。 2人のプレイヤーが一緒に遊ぶことを承諾すると、5秒間画面を表示して準備をして、同時に開始したいと思う。SignalRでクライアントを一緒に起動する方法

public class GameHub : Hub 
{ 
    public void AcceptRequest() 
    { 
     Clients.Group("players").GetReadyToPlay(); 
    } 
} 

私はそれらに準備準備信号を送信しますが、後で何をするかはわかりません。

私は2つの問題をしました:

  • 私は悪意のある プレイヤーが起動処理を中断を避けるために、クライアント側でタイマーを使用する必要はありません。
  • UTCで始まる時刻は ですが、クライアントの時計が正しく設定されていない可能性があります。 を一緒に始めるには(数秒は問題ありません)。

ああ

私の上記の方法AcceptRequestでは、私はその後、準備を5秒間スレッドをスリープ状態にし、クライアントに開始信号を送信するように信号を送ることができます。これはどうすればいいのでしょうか?

+0

クローズに投票した人は、どのように広すぎますか? – Blendester

答えて

1

2人のプレイヤーがこのゲームのインスタンスのためのグループに属していることを確認してください。

カウントダウンからの値が表示されるように、そのグループに送信されたカウントダウンを開始します。あなたのスレッドをスリープ状態にする代わりに、ちょうどカウントダウンし、クライアントに "5"、 "4"、 "3"、 "2"、 "1"、 "Go!"更新。

"Go!"実際にマッチを開始する別のブロードキャスト方法になる可能性があります。

最終的には、接続解除/再接続のイベントとそれらがどのようにマッチに影響するかを処理する必要があります。

関連する問題