2010-12-09 10 views
4

私はiPhone用のビデオゲームを開発しています。マリオ・カートのように、最高レベルの走りの「幽霊」を各レベルに保存したいと思っています。ゲームの各レベルに保存されたゴーストを実装する

私はすでに実装していますが、(x、y、回転)値を格納するブルートフォースアプローチを使用しました(毎秒60フレーム)。言うまでもなく、これは非常に高価です(特にモバイルデバイスの場合)。

幽霊のレンダリング時にデータを保存する頻度が少なく、補間することができたと思いますが、これをどうやって行うのか、よく見えるかどうかは100%わかりません。

誰もこれまでに行ったことはありますか?あなたはそれをどのように実装しますか?標準的なアプローチはありますか?

+2

ゲームデータの代わりにユーザー入力を保存する方が簡単でしょうか? –

+0

軌道が生成された疑似乱数値に依存するオブジェクトがない場合のみ。 –

+0

なぜそれを削除しましたか?私はまださまざまなオプションについて考えていました... – FogleBird

答えて

1

線形補間は、それが必要な場合は非常に簡単です。しかし、補間したいオブジェクトが非線形の弾道(弾道または横方向の弾道効果)を持つことができれば、より複雑になります。

最も簡単な方法は、オブジェクトの初期位置とその移動ベクトル(x、y、zの速度、単位時間あたりのオフセット)を記録することです。そのオブジェクトの速度や方向が変わるまでは、オブジェクトを再び記録する必要はありません。その後、経過時間、新しい位置、新しい動きベクトルを記録するだけです(理論的には位置を記録し直す必要はありませんが、ベクトルだけですが、チェック値を設定することをお勧めします)。あなたはそれを破棄することができますデバッグ)。 次に、オブジェクトを元の位置に配置し、次の記録位置の時間に達するまで移動フレームごとに移動オフセットを追加します。等々。

+0

こんにちはファビオ - あなたは百万年前にデータを補間しようとはしません。あなたは何百万年もの間、入力などからデータを「再構築」することはありません。 – Fattie

+0

私は彼のプログラムがMario Kartのようなものではないと思っていました。私は、彼が持っていた問題は単にMario Kartの状況と似ていると理解しました。彼のソフトウェアの詳細な知識がなければ、私は彼のアーキテクチャについての提案よりも彼が求めたものに答える方が良いと思った。あなたのアプローチは彼の特定の問題のほうが良いかもしれませんが、彼は唯一の判断者です。 –

+0

また、私はなぜその位置の代わりにオブジェクトの軌跡を保存するためのそのような拒絶理由を理解していませんでした。これは、ストレージ容量を削減する場合の一般的なアプローチです。私はこれを何度もやってきました(ゲームではなく、私のやり方ではありませんが、GISシステムでは問題ありません)。 –

関連する問題