0

私は現在、ActionScript 3.0 の「Peggle」スタイルのゲームに Nape 物理エンジンを使用しています。

ここに画像の説明を入力

とても使いやすく、スムーズに動きます。ただし、Nape で遭遇した唯一の問題は、まったく同じシミュレーションを再生することです。

ゲームプレイ全体で同じタイムステップ値を指定したとしても、計算に十分な「エラー」があるようで、ボールが時々異なるペグに当たり (ラウンドをゼロから開始)、多かれ少なかれ結果が出る場合もあります。点灯ペグ。

だから私の質問は:

与えられたシミュレーションを再起動するたびにまったく同じように再現できる Flash 用の物理エンジンは他にありますか?

編集:フレームごとにデータを「記録」して再生するというアイデアは、私がこの質問をした他のフォーラムで投げかけられました。しかし、残念ながら、「リプレイ」機能は、同じユーザーが自分のボール ドロップ シナリオを表示するためのものではありません。これは、異なるマシン上のプレーヤー間で共有するために使用されます (例: クライアントが、値 1234 をシードしたボール ドロップのバグを報告し、1234 をパンチすると、同じ問題を確認できるはずです)。したがって、一連のシナリオを事前に記録し (つまり、実際に物理シミュレーションを実行しているという錯覚をプレーヤーに与えるのに十分な量を意味します)、ランダムに 1 つを選択し、そのランダム ID を使用して特定のシナリオを識別します。 、つまり、大量のデータをゲームに埋め込む必要があります。物理エンジンが決定論的であれば、そうでなければ節約できたはずです。


そして、Napeですでに試したことをすべてチェックするために:

  • ボールはゲーム開始時に同じ位置と回転にリセットされます。
  • ボールの初期速度はユーザーのクリック時に設定されるため、これは最後のラウンドから持ち越された速度をオーバーライドする必要があります。
  • ペグは動かない (静止している) ので、リセットする必要はありません。
  • ボールをキャッチする部分はスタティックボックスとセンサーだけなので、リセットしても意味がありません。
4

1 に答える 1

-1

Citrus Engine は、TimeShifter で同様の機能を提供します。デモBraidを実行して確認できます([SHIFT] を押して時間を戻す)、TimeShifter API

于 2014-08-20T18:09:01.013 に答える