检测十字准线瞄准圆形目标的最佳方法是什么?我尝试在十字准线中间添加一个小圆圈,并检测该圆圈与目标何时发生碰撞。但我无法让它工作。
我已经尝试过使用目标的 x 和 y 坐标,但如果能够检测到十字准线“圆圈”和圆形目标何时重叠,以及何时不重叠,那就更好了。
我已经尝试过重叠图像: http: //developer.coronalabs.com/code/flashs-hittestobject-emulated-using-contentbounds但这不能识别圆形,只能识别矩形。
检测十字准线瞄准圆形目标的最佳方法是什么?我尝试在十字准线中间添加一个小圆圈,并检测该圆圈与目标何时发生碰撞。但我无法让它工作。
我已经尝试过使用目标的 x 和 y 坐标,但如果能够检测到十字准线“圆圈”和圆形目标何时重叠,以及何时不重叠,那就更好了。
我已经尝试过重叠图像: http: //developer.coronalabs.com/code/flashs-hittestobject-emulated-using-contentbounds但这不能识别圆形,只能识别矩形。
The crosshairs is on the object if the distance from the x,y of the crosshairs to the center of the object is less than or equal to the radius of the object. Pythagoras is your friend here. Check this in enterFrame
event.
You don't need to do the square root calculation for this, by the way. Just compute ((x1-x2)*(x1-x2)) + ((y1-y2)*(y1-y2))
each time through enterFrame
, and compare it to the object's radius squared, which will be constant and can therefore be calculated just once.
查看这篇关于非物理碰撞的博客文章。其中涵盖了两种方法(框重叠和圆半径)。我在很多不需要物理的应用程序中使用它们。
http://omnigeek.robmiracle.com/2011/12/14/collision-detection-without-physics/