ゲームでタイムストップまたはバレットタイムをコーディングする方法
XNA 4.0でシングルプレイヤーRPGプラットフォーマーを開発しています。時間を「停止」または減速させ、プレイヤーキャラクターのみを元の速度で移動させる能力を追加したいと思います(Baldur's GateシリーズのTime Stopスペルに似ています)。正確な実装ではなく、いくつかの一般的なアイデアとデザインパターンを探しています。 編集: 素晴らしい入力をありがとう。私は次の解決策を考え出しました public void Update(GameTime gameTime) { GameTime newGameTime = new GameTime(gameTime.TotalGameTime, new TimeSpan(gameTime.ElapsedGameTime.Ticks / DESIRED_TIME_MODIFIER)); gameTime = newGameTime; またはこれらの線に沿って何か。このようにして、プレーヤーコンポーネントに別の時間を設定し、残りの時間に別の時間を設定できます。このようなワーピング時間が中心的な要素となるゲームで機能するのに十分なほど普遍的ではありませんが、このケースで機能することを願っています。メインのUpdateループが少し不快であるという事実はちょっと嫌いですが、それは確かにそれを実装する最も簡単な方法です。それは本質的にテッセローデが提案したのと同じだと思いますので、私は彼に緑のダニを与えます:)