私は俳優とのネットワーク上で動作する小さな2人用ゲームを作っています。各クライアントはサーバーにメッセージを送信して参加します。その時点で送信者への参照を保持したいのですが、2番目のプレーヤーが参加すると、最初のプレーヤーへの参照が上書きされます。
case class JoinMsg
class Server(port: Int) extends Actor {
var client1: OutputChannel[Any] = null
var client2: OutputChannel[Any] = null
def act() {
alive(port)
register('Server, self)
while (true) {
receive {
case JoinMsg =>
if (client1 == null) {
Console.println("got player 1")
client1 = sender
client1 ! new Msg("Waiting for player 2")
} else if (client2 == null) {
Console.println("got player 2")
client2 = sender
Console.println("blatted client1?: "+(client1 == client2))//true
client1 ! new Msg("hi")
client2 ! new Msg("hi")
}
}
}
}
}
これについて行く正しい方法は何ですか?どうも。