xna-gameを開発していますが、いくつかの問題が発生しました。私は次のようにメインループでサーバーから情報を取得することから始めました。
player.X = client.GetInt32();
player.Y = client.GetInt32();
player.IsShooting = client.GetBoolean();
しばらくして、このコードを別のクラスServerLayerに移動しました。
最初はServerLayerにプレーヤーインスタンスが含まれていましたが、しばらくすると、ServerLayerにはMapやBombsなどの参照が含まれるようになりました。そこで、サーバーからの情報を必要とするオブジェクトを次のようなメソッドに直接渡すことにしました。
メインループ内:
serverLayer.GetPosition(player);
ServerLayerの場合:
public void GetPosition(Player player)
{
player.X = client.GetInt32();
player.Y = client.GetInt32();
player.IsShooting = client.GetBoolean();
}
これは正しい方法ですか?一部のメソッド(GetInitなど)は多くの引数を取ります。