if (aIsASprite && bIsASprite) {
//Yes, but what kind of sprites?
if (a.diameter && b.diameter) {
//They're circles
return circleVsCircle(a, b);
} else if (a.diameter && !b.diameter) {
//The first one is a circle and the second is a rectangle
return circleVsRectangle(a, b);
} else {
//They're rectangles
return rectangleVsRectangle(a, b);
}
}
anySprite.circular = true;will make the sprite be interpreted as circular. In fact it doesn't work. I notice there's a block in the source code:It seems that the function
hitusesdiameteras the flag of circle rather thancircular. After my testing ,anySprite.diameter= true;works well.movingCircleCollisionworks well----I mean both the circles move when they hit each other. ButrectangleCollisionandcircleRectangleCollisionwon't move the second sprite passed into function. Is that a bug?P.S. I have passed the correct parameters, the call seems like this:
b.hit(circle, rect, true, true);