前回に続いてピンボールのようなものの製作です。(途中)
青い線の反発係数は0.99です。
ダウンロード
スクリプト
PinBallVertex
Sprite_PinBallLine
Scene_PinBall
PinBall
PinBall_Edge
Sprite_PinBall
VectorCalc
いままでは一度だけ反射させることでごまかしていましたが
今回はそれを解除しました。
あと接触したあと速度の向きを変えると接触した対象にめり込む形になり
さらにそのために再度対象に接触してしまう事態になってしたのを
衝突後の位置を計算してめり込む前にその位置へ移すようにしました。
あと上の衝突を実現させるために衝突の判定方法を変えました。
以前は衝突したか否かのみで判定していたのですが
細かい数値も使いたくなったので具体的な計算を行いました。
下図は以前の判定方法です。
次は質点の運動として扱っていたのを厚みのある物体として扱うようにしようと思っています。
剛体の回転みたいなことまでさせるかは決めてません。(でも面倒くさそう)
今思えば辺や玉など衝突するもの全てcollide_objectみたいなクラスに属するものにして
まとめて扱えばよかったかなぁと思ったりしているのでそのように変更するかもしれません。