我正在开发一个 xna 游戏并遇到了一些问题。我开始只是从主循环中的服务器获取信息,如下所示:
player.X = client.GetInt32();
player.Y = client.GetInt32();
player.IsShooting = client.GetBoolean();
过了一会儿,我把这段代码移到了一个单独的类:ServerLayer。
起初 ServerLayer 包含播放器实例,但过了一段时间,ServerLayer 引用了地图和炸弹以及一堆其他东西。所以我决定将需要服务器信息的对象直接传递到这样的方法中:
在主循环中:
serverLayer.GetPosition(player);
在服务器层中:
public void GetPosition(Player player)
{
player.X = client.GetInt32();
player.Y = client.GetInt32();
player.IsShooting = client.GetBoolean();
}
这是正确的方法吗?一些方法(GetInit 等)需要很多参数。