私は現在、ActionScript 3.0 の「Peggle」スタイルのゲームに Nape 物理エンジンを使用しています。
とても使いやすく、スムーズに動きます。ただし、Nape で遭遇した唯一の問題は、まったく同じシミュレーションを再生することです。
ゲームプレイ全体で同じタイムステップ値を指定したとしても、計算に十分な「エラー」があるようで、ボールが時々異なるペグに当たり (ラウンドをゼロから開始)、多かれ少なかれ結果が出る場合もあります。点灯ペグ。
だから私の質問は:
与えられたシミュレーションを再起動するたびにまったく同じように再現できる Flash 用の物理エンジンは他にありますか?
編集:フレームごとにデータを「記録」して再生するというアイデアは、私がこの質問をした他のフォーラムで投げかけられました。しかし、残念ながら、「リプレイ」機能は、同じユーザーが自分のボール ドロップ シナリオを表示するためのものではありません。これは、異なるマシン上のプレーヤー間で共有するために使用されます (例: クライアントが、値 1234 をシードしたボール ドロップのバグを報告し、1234 をパンチすると、同じ問題を確認できるはずです)。したがって、一連のシナリオを事前に記録し (つまり、実際に物理シミュレーションを実行しているという錯覚をプレーヤーに与えるのに十分な量を意味します)、ランダムに 1 つを選択し、そのランダム ID を使用して特定のシナリオを識別します。 、つまり、大量のデータをゲームに埋め込む必要があります。物理エンジンが決定論的であれば、そうでなければ節約できたはずです。
そして、Napeですでに試したことをすべてチェックするために:
- ボールはゲーム開始時に同じ位置と回転にリセットされます。
- ボールの初期速度はユーザーのクリック時に設定されるため、これは最後のラウンドから持ち越された速度をオーバーライドする必要があります。
- ペグは動かない (静止している) ので、リセットする必要はありません。
- ボールをキャッチする部分はスタティックボックスとセンサーだけなので、リセットしても意味がありません。