赛车游戏(二)一个Mascot Capsule v3多人游戏例子[6]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

l         当响应发生,简单的把赛车反弹回赛道。在这个应用程序中,赛车是简单的旋转。旋转的角度是赛车与赛道边界的夹角。这个仍然是基于赛车的速度向量和赛道边界的法线向量。

 

多玩家与蓝牙连接

    在双人模式,用户有另一方的模型,用户通过使用蓝牙技术从另一个手机上获得所有模型的相关参数。

    与“赛车游戏()”例子相比,蓝牙通信代码稍有更改。现在,当报文创建时,数据立即会立即发送。同样地,当数据到达时会立即被接收,减少信息的潜伏期。

    双方的报文交换应尽可能的反映出我们看见的真实状态。然而发送和接收报文都需要数秒钟时间,因此在这段时间处理之后,赛车的位置通常已经有所改变。这种情况的发生是因为在交换数据的同时,双方的赛车都在移动。因此一些措施必要的,下面向你介绍如何处理这个问题:在Internet上很容易找得到网络游戏设计的信息。在这个游戏例子中,论述处理这个问题的方法十分简单。

    尽可能在另一方保持自己的真实位置,当前位置和速度将被发送。随时发送数据在赛车的位置或速度发生改变时:旋转,加速,刹车,与赛道碰撞。这些值将被发送,当处理两个赛车间的碰撞时。如果在一段时间内没有这些事件发送,这些数据也会在一段固定的时间后自动发送一次。

    在检测两个赛车见的碰撞信息时,赛车的位置在另一方看起仍然是错误的。处理碰撞探测和响应问题上,设计了一个简单的工作区。当一边探测到可能发生碰撞时,它会发送这个事件和赛车的正确位置和速度到另一方,它在接收到响应之前赛车不会移动。另一方接收到可能发生碰撞的标记和正确的赛车位置和速度(在接收者响应之前,发送者的赛车不会移动)。接收者会检测碰撞是否真的会发生,并发两辆赛车的正确位置和速度作为响应发送给发送者。

    这里必须提到的一个问题,就是只有服务器才能发送两辆赛车之间可能碰撞的标记。由于这个限制,所以这是一个简单的例子。如果两边都想发送碰撞标记,他们会在同一时间等待响应。因此要处理这个问题就需要引入更多高级的方法。

    检测两辆赛车间的碰撞是基于一个简单的范围碰撞原理。当两辆赛车之间的距离足够小时,就判断碰撞发生。作为响应,就是交换两辆车的速度向量。

 

最后说明

本文关键:赛车游戏(二)一个Mascot Capsule v3多人游戏例子
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top