package { import Box2D.Collision.b2ContactPoint; import Box2D.Dynamics.b2ContactListener; public class ContactListener extends b2ContactListener { public var parent:KiraKira; public function ContactListener() { } // 新しく衝突が発生したときに呼び出されるメソッド public override function Add(point:b2ContactPoint):void { // 衝突時の力の大きさをもとに、エフェクトを発生させる数を計算する var num:int = point.normalForce / 10 + 1; // 計算ミスで大きな力がかかることがあるので、値を10までに制限する if (num > 10) { num = 10; } for (var i:int = 0; i < num; ++i) { parent.addContactEffect(point); } } } }