私はマルチポーンゲームを書きましたが、〜60ms遅れてボールが滑らかに動いていません。 The game itself is available hereが、それはクロームでのみ動作するので、サイト自体は(もあなたは明らかにそれが動作するためには2つのブラウザが必要です)私の母国語で書かれている、ここでの問題のjsfiddleです:キャンバスボールをスムーズに動かす
フィドルで見ることができるように、dx
とdy
が定義されており、1秒あたりのリフレッシュ数はspeed
と定義されています。私はこれらの3つの変数が一定に保たれている必要があります(ボールがスムーズに動かないことがわかっています)。
質問:これらの変数には触れないトリックはありますか?ボールは滑らかに動くように見せかけますか?ボールの新しい位置をレンダリングし、ボールの以前の位置を50%の不透明度でレンダリングすることを考えていましたが、まだテストしていません。この問題に対する他の解決策はありますか?
'dx'、' dy'、 'speed'に触れたくない特別な理由はありますか?より頻繁な更新はよりスムーズなアニメーションを実現します。 –
@JasonP:まず、元のアプリでは、「dx、dy」はできるだけ小さい(値1と2)。だからそれがある。クライアントとサーバーの間の遅れ(約50ms)のために「スピード」を変更することはできません。そのことについても何もできません。だから私はここで何らかのトリックが必要です。 – ojek
ゲームをクライアント上でアニメートさせ、サーバーとの同期に必要なときに変更するだけの場合はどうなりますか?また、ステップを1より小さくすることもできます。 –