我正在做这个台球游戏:
http://cassinlwbg.facebook.joyent.us/quickpool/main.swf
请在两个浏览器窗口中打开它,您将看到 2 播放器模式启动。
当你投篮时,每一个投篮都会被复制给其他球员。
不幸的是,它不够精确。
玩家使用以下代码进行射击:
protected function makeShot(str:Number, ang:Number):void {
var vx = str * Math.cos(ang);
var vy = str * Math.sin(ang);
var vel = _whiteBall.body.GetLinearVelocity();
vel.x += (vx * 10);
vel.y += (vy * 10);
_whiteBall.body.SetLinearVelocity(vel);
}
之后,我通过套接字服务器将 STRENGTH 和 ANGLE 参数发送给其他玩家。
即使在字符串到数字转换之后,它们也完全相同(经过测试)。
然后我将它应用于远程播放器,作为远程拍摄,如下所示:
//run remote shot
public function applyMove(s:Number, ang:Number){
makeShot(s, angle);
}
尽管如此,在几次投篮之后,比赛和球位不同......这打破了比赛流程。
有人知道为什么吗?
如您所见,两个游戏文件相同。
哪里有这么大的偏差?
问候,米尔扎