ねこでじ(Nekodigi)

Nekodigi’s diary

学習中の気づきをまとめています。応援よろしくお願いします

【Processing】円と、四角形の弾性衝突を計算できる物理エンジンを実装する。

成果物

www.youtube.com
数学友達が物理エンジンを作りたいって言ったので、さっそく調べてみることにしました。昔やろうとして挫折したのですが、今回はうまくいきました。

仕組み

物体が衝突したときに、速度を再計算し、次のフレームでぶつかってしまわないように、位置を調整するという仕組みです。使われている数式は、高校物理で出てくるような一般的なものです。
今回は、こちらのTutorialの1ページ目を見ながら作りました。最後まで行くと回転や、摩擦も扱えるようになりますが、結構重たいので、余裕ができたら進めていきたいです。
How to Create a Custom Physics Engine - Envato Tuts+ Game Development Tutorials

コード

sketch_1_0_3_Utilsという名前で追加しています。
github.com