AS2 で高度な衝突検出を行う最善の方法は何だろうと思っています。バウンディング ボックスのことではありません。具体的には、何かと衝突したときにプレーヤーが一方向に移動するのをどのように止めるのですか?
トップダウン シューターを想像してみてください。基本的に、これに似たゲームで衝突検出がどのように達成されたかを探しています: http://ninjakiwi.com/Games/Action/Play/SAS-Zombie-Assault-2.html
プレーヤーが現在動いている方向(上、下、左、右)を追跡する配列があります。また、対応する変数が true の場合にプレーヤーが各方向に移動できるようにする 4 つの変数もあります。プレイヤーが衝突配列内のムービークリップと衝突すると、プレイヤーが移動する方向に関連する変数を false に設定して、オブジェクトと衝突したときに進んでいた方向に移動し続けることができないようにします。問題は、プレイヤーが斜め (2 方向) に移動していて、一方向に移動し続けることができるはずのものと衝突した場合に発生します。例:
プレーは上方向に移動できるはずですが、できません。
もう 1 つの問題は、プレーヤーが移動できるかどうかを決定する変数が、反対方向のキーが押されたときに true に戻されることです (つまり、反対方向に移動したため、左が押されたときに右に移動できる変数が true に設定されます)。方向)。したがって、前の例で、斜めに移動せずに単に右に移動した場合、オブジェクトに触れなくなるまで上に移動しながら右を押したままにすると、左のキーが押されていないため、右に移動できなくなります。 .
私は物事を複雑にしすぎているようですが、プレイヤーが一方向に移動するのを止めるすべての壁を個別に配置する以外に方法はありますか? (つまり、プレイヤーがこの壁に触れた場合、右への移動を停止します)。<--- この方法では、オブジェクトが回転したときにランダムに生成されたマップが許可されません。または、オブジェクトの回転に応じて数学を使用してこれを回避できる方法はありますか?
テストをヒットする最も簡単な方法は何ですか? :D