仕込み中(接触判定)
弾幕が一応出るようになったので、あとは弾丸とひもの反射を実装するだけです。
弾がひもをすり抜けることのないよう、現時刻から 1 フレーム分の時間で弾が動く軌跡の線分と、ひもが動く領域との交差判定で検出します。
弾とひもが接触したと判定する条件ですが、
- 弾の線分がひもの移動領域を突き抜けている。(線分の端点はいずれも領域内にない)
- 弾の線分どちらかの端点が、ひもの移動領域内に含まれている。
- 弾の線分はすべてひもの移動領域内に含まれている。
この 3 つのケースが検出できれば、接触判定の漏れはなさそうです。
これらは、以下の一般的な判定に分解することができます。
- 2本の線分の交差判定
- 点と三角形との内外判定
しばらく忘れていた身なので、これらの判定式の導出にしばらく悩みました。
わざわざ方程式を解かんでも、ベクトルの内積・外積を使えば簡単やった…(^^;)。