广州专业网站建设性价比高合肥seo
C#开发的OpenRA游戏之基地工程车执行部署命令
前面已经分析接收到网络命令后,可以拿到多个命令对象,
通过命令对象进行遍历,最终会在比较部署命令的类里相同,从而执行部署命令。
可见,网络游戏里的对象操作,都是通过网络发送给服务器,再从服务器返回消息来执行对象的动作,
而不是直接执行游戏对象的动作,这与本地游戏是有区别的。
下面就来详细分析一下基地工程车执行部署命令的过程,
之前在Transforms类分析ResolveOrder(Actor self, Order order)函数执行命令,
然后调用DeployTransform(bool queued)函数,这个函数如下:
public void DeployTransform(bool queued)
{
if (!queued && !CanDeploy())
{
// Only play the "Cannot deploy here" audio
// for non-queued orders
foreach (var s in Info.NoTransformSounds)
Game.Sound.PlayToPlayer(SoundType.World, self.Owner, s);
Game.Sound.PlayNotification(self.World.Map.Rules, self.Owner, "Speech", Info.NoTransformNotification, self.Owner