仕込み中(接触判定)

弾幕が一応出るようになったので、あとは弾丸とひもの反射を実装するだけです。

弾がひもをすり抜けることのないよう、現時刻から 1 フレーム分の時間で弾が動く軌跡の線分と、ひもが動く領域との交差判定で検出します。

弾とひもが接触したと判定する条件ですが、

  • 弾の線分がひもの移動領域を突き抜けている。(線分の端点はいずれも領域内にない)
  • 弾の線分どちらかの端点が、ひもの移動領域内に含まれている。
  • 弾の線分はすべてひもの移動領域内に含まれている。

この 3 つのケースが検出できれば、接触判定の漏れはなさそうです。

これらは、以下の一般的な判定に分解することができます。

  • 2本の線分の交差判定
  • 点と三角形との内外判定

しばらく忘れていた身なので、これらの判定式の導出にしばらく悩みました。
わざわざ方程式を解かんでも、ベクトルの内積外積を使えば簡単やった…(^^;)。