私はC#/ XNAを使用していますが、更新コードと描画コードを混在させないように何度も言われていますが、私はそうではないと確信しています!しかし、誰もが正確に「論理コード」とは何かを説明してもらえますか?
ここに見られるように:http : //blogs.msdn.com/b/shawnhar/archive/2007/07/25/understanding-gametime.aspx
[...]ゲームロジックをすべてDrawメソッドではなくUpdateメソッド内に配置すると、すべてが一定の速度で実行されます。
私のゲームの速度はFPSに比べて変動するため、これを求めています。遅いFPSは遅い動きのオブジェクトに等しく、その逆も同様です。そして、はい、私は予想されるposition += speed * (float)gt.ElapsedGameTime.TotalSeconds;
コードを含めています。
これはおそらく大きな新人の質問ですが、この定義については絶対に明確にしたいだけです。
gt.ElapsedGameTime.TotalSeconds
プログラム(ゲーム)を開始してから経過した秒数だと思いました。速度にそれを掛けると、5秒の再生後に速度が5倍速くなります(速度が0に設定されている特別な場合を除く)。あなたがそれを持っていることが他に何がそれを真実ではないかわからないが、私は興味をそそられる。
iii
それを望んでいないので、私は手動ですべての更新をインクリメントするという独自の変数を個人的に使用しているので、ステップやフレームが必要です。しかし、あなたの方法は物事をソフトコーディングする有効な方法であることがわかります。
position = speed * ...TotalSeconds
。で=
はないことに注意してください+=
。それだったら+=
、あなたが入力しただけのように、そしてあなたの位置は、ほぼ瞬時に画面をオフに飛んでいくのです。