「判定詐欺球」
- https://scratch.mit.edu/projects/1033644021/
- 「ブロック数が多すぎて普通に管理がムズイ....そして222秒もあるぞこのアニメ...」
あらすじ
アニメ
- 遅刻しそうなので玉乗りで学校に行く。
- バランスが悪いので落下する...と思いきや玉の当たり判定が四角形なので落下しない。
解説
- 適当なプラットフォーマーの円や長方形の当たり判定について解説。
- 円は中心同士の距離が両方の半径の合計より短くなる。
- 円は中心から端までの距離がどの角度からでも同じなので、直線距離がこの半径の合計より低くなるときに触れていることになる。
- 斜めに触れ合っている時には三平方の定理を使う。例えば直角三角形の横の辺が3cm、縦の辺が4cmなら、斜めの辺が√3²+4²=√9+16=√25で5cmになるということ。
- この場合は三平方の定理を利用した定義で簡単に求められる。
- 今度は円と四角形の当たり判定。
- 円は四角形と同じ方法で判定したい所だが、そうすると円を四角形とした時の角部分に見えない当たり判定が発生する。
- そのため四角形の4つの頂点それぞれへの直線距離を調べ、四角形の4つの頂点全部が半径0の円として、触れているかそれぞれ計算することで判定する。
- 1つでも触れていれば全てに触れていると判定される。
- とりあえず適当なプラットフォーマーに導入する。
- しかし変数の量が多くて大変で、変数や演算のミスで稼働しなかった。
- それをデバッグすると、ますますブロック数が膨大になった。
- 坂の判定は次回。