物理对象触摸的是什么物体?

时间:2015-02-08 23:48:47

标签: corona

我希望有一个添加了物理效果的显示对象(addBody)为我提供了一个触摸它的对象表,但它并没有。

是否有一个简单的机制来获取我的显示对象正在触摸的所有其他对象的表格?或者我是否必须在碰撞事件中跟踪它们?

为清晰起见编辑 我查看了区域查询,问题是我需要递归访问每个对象。想想宝石迷阵游戏。如果我有大量的物理对象落到地面上,并且其中一些物体共享相似的属性(如宝石迷阵中的颜色),我想知道这五个物理对象中的哪一个同时触动所有人。如果x或更多是触摸,我想同时从游戏中删除对象。

因此,如果A正在接触B和C,并且A B& C都共享相同的颜色,一次删除它们。但也许A&在C出现之前,B已经休息了一段时间。如果C碰撞到B,那么检查A的状态没有真正简单的方法。我怎样才能看到C,B和A对象是否全部相互连接,仍然在触摸,并且所有对象都是相同的属性所以我可以让它们消失?

我尝试向坠落的物体添加属性,然后在碰撞事件中,看看event.other.color是否与我的self.color匹配。如果他们这样做,那么我将它们添加到另一个表格中,表明他们目前正在接触。

但我的方法是跟踪什么是"触摸"只有在event.phase =="结束"之后才有效。发生这种情况时,我会从表中删除数据。不幸的是,在这里发生的事情并不总是注册为"不再触及"。我认为这表明我的方法工作得不好。

我不能成为第一个想做这样的事情的人,但是其他人怎么做呢?我哪里出错?

1 个答案:

答案 0 :(得分:0)

也许“区域查询”会有所帮助。查看SampleCode / Physics / RegionQuery

中的RegionQuery示例应用程序