如何检测Corona中的重叠物体?

问题描述:

什么是最好的方式来检测一个十字瞄准目标是目标? 我尝试在十字线中间加入一个小圆圈,并检测该圆圈和目标相撞的时间。但我无法让它工作。如何检测Corona中的重叠物体?

我尝试过使用目标的x和y坐标有一些运气,但它能更好地检测出十字准线“圆形”和圆形目标是否重叠,以及何时它们是不。

我试过这个重叠图像:http://developer.coronalabs.com/code/flashs-hittestobject-emulated-using-contentbounds但这不认识圆形,只有矩形。

如果从十字准线的x,y到物体中心的距离小于或等于物体的半径,则十字准线位于物体上。毕达哥拉斯是你的朋友。请在enterFrame事件中查看。

顺便说一下,您不需要对此进行平方根计算。每次通过enterFrame计算((x1-x2)*(x1-x2)) + ((y1-y2)*(y1-y2)),并将其与对象的半径平方进行比较,这将是常数,因此可以只计算一次。

+0

谢谢!我在搜索毕达哥拉斯时发现了这个问题http://www.isk.kth.se/~johanseg/files/prgprj/lesson8.pdf我只需要将它翻译成Lua;) – user1373293 2013-02-19 12:19:31

+0

我认为这是答案。感谢你JeffK指出了方向;)http://www.gamefromscratch.com/post/2012/12/12/GameDev-math-recipes-Collision-detection-using-bounding-circles.aspx – user1373293 2013-02-19 14:20:56

查看关于非物理碰撞的博客文章。它包括两种方法(方框重叠和圆弧半径)。我在很多不需要物理学的应用程序中使用这些应用程序。

http://omnigeek.robmiracle.com/2011/12/14/collision-detection-without-physics/