私が作っているゲームで、給油ステーションの上部にぶつかったときにそれを検出したい移動中の火星着陸船があります。彼らがいつヒットしたかを正確に知るための最良の方法を知りたいです。
私が現在行っていることは、水平、垂直、重力の動きを制御する 3 つのタイマーがあることです。各タイマーは火星着陸船を少し動かすので、クラッシュ検出コードをそれぞれの上部と下部に配置しましたが、それぞれが 50 ミリ秒ごとに起動するため、a) 衝突を正確に検出せず、b) を呼び出します。クラッシュ検出コードを何度も。
これはタイマーの 1 つがどのように見えるかであり、3 つすべてでほとんど同じです (私は vb 2008 でゲームを作成しています。これは単なる擬似コードです)。
gravity timer:
detectCrash()
Move ship
detectCrash()
End timer
衝突からそれが呼び出すコードまでの応答時間に関して、それらが衝突しているかどうかを確認するより正確な方法は何でしょうか。
検出をより少ない回数で呼び出すにはどうすればよいですか?
10ミリ秒ごとに起動する別のタイマーを作成して衝突をチェックすることもできますが、これによりコードが非常に多く(1秒間に100回)実行されますか?
大規模なゲームがこのようなことをどのように処理するかについても興味があります.これはおそらく1秒間に何度も発生します.
ありがとう。