- 374 名前:名前は開発中のものです。 mailto:sage [2008/11/06(木) 09:00:15 ID:5MtmmVSK]
- 追い抜いたときってのを調べるには、1ステップ前の状態を記録しといた方がいいんじゃない?
例えば、 Stepに difference = Aのx座標 - Bのx座標; を入れて、 Stepの最後の行かEnd Stepに prev_difference = difference; を入れる。 そしてStep内で、 prev_differenceとdifferenceをチェックする。 prev_difference(1フレーム前の差)とdifference(今現在の差)を見たとき、 マイナスからプラスになったり、プラスからマイナスになったりしたときが、 どちらかが追い抜いたとき、となる。どっちがどっちかはすぐわかるはず。 ちなみに2つ目の質問に答えると、ゲームに限らず、プログラムはそこに書かれているとおりに動く。 どういうことかというと、A.xがB.x-1になったときに音を再生する、 つまり、それが例え追い抜いたとしても後ろから近づいただけだとしても、座標軸でBがAの左にちょうど1離れたところにいる瞬間に音を鳴らす、という判定がかなりシビアな表現になる。
|

|