我試圖實現一個aabb來圓碰撞。框與圓碰撞AS3
這裏是我的代碼:
//From another file
radius = (sprite.width + sprite.height)/4;
private function BoxToCircleCollision(box1:BoundingBox, circle1:BoundingCircle):Boolean
{
var nBoxMinX:Number = box1.sprite.x - box1.sprite.width/2;
//var nBoxMinY:Number = box1.sprite.x + box1.sprite.width/2;
var nBoxMaxX:Number = box1.sprite.y - box1.sprite.height/2;
//var nBoxMaxY:Number = box1.sprite.y + box1.sprite.height/2;
var nCirMinX:Number = circle1.sprite.x - circle1.radius/2;
//var nCirMinY:Number = circle1.sprite.y - circle1.radius;
var nCirMaxX:Number = circle1.sprite.x + circle1.radius/2;
//var nCirMaxY:Number = circle1.sprite.y + circle1.radius;
if (nBoxMaxX, 2 > nCirMinX))
{
Main.WriteDebug("Box max: " + nBoxMaxX + " | Circle min: " + nCirMinX);
return true;
}
else
{
Main.WriteDebug("Box max: " + nBoxMaxX + " | Circle min: " + nCirMinX);
return false;
}
}
不知何故碰撞確實按預期方式工作。 要麼他們永遠不會移動,並且「相撞」被追蹤,或者當我嘗試交換數值時,他們會繼續移動,永遠不會相互碰撞。
有什麼我在我的邏輯中失蹤?
我的盒子和圓圈碰撞工作正常。
在此先感謝您的幫助。
角落碰撞怎麼樣? – DevITper 2012-02-27 09:03:34
你的意思是當圓與AABB的角落碰撞? – Bakapii 2012-02-27 09:14:23
y我該怎麼做? – DevITper 2012-02-28 09:50:01