私は、このビリヤードゲームに取り組んでいます:
http://cassinlwbg.facebook.joyent.us/quickpool/main.swf
2 つのブラウザ ウィンドウで開くと、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);
}
それでも、いくつかのショットの後、ゲームとボールの位置が異なります...これがゲームの流れを壊します.
理由を知っている人はいますか?
ご覧のとおり、両方のゲーム ファイルは同じです。
そんなに偏差があるのは何ですか?
よろしく、ミルザ