Flash功能中的碰撞检测? (hitTestObject)

时间:2014-01-11 23:02:26

标签: actionscript-3 flash actionscript adobe collision-detection

  • 您好,所以我最近使用hitTestObject来检测我正在制作的Android应用中的冲突。经过一段时间的测试,我意识到游戏正在检测“假”碰撞。我的意思是它在物体的像素接触时检测到的碰撞,但是(在做了一些研究之后)我发现了盒子碰撞的对象。所以我让游戏停止了碰撞,这就是它的样子:

enter image description here

为了清楚起见,我尝试勾勒出两个对象的框。你可以看到他们的盒子正在触摸。有没有办法让它在像素碰撞时检测到?

  • 我认为在网上会有一些东西,但我不知道是什么。游戏是通过动作窗口编程的,而不是类文件,所以没有包,也没有类,任何碰撞检测“功能”在线,需要一个类来工作,可能在这里不起作用。

无论如何:在actionscript-3中有任何方法来检测像素是否会发生碰撞,如果是这样的话。我可以使用哪些功能和/或命令?

3 个答案:

答案 0 :(得分:2)

正如您所注意到的,hitTestObject中的命中区域默认为矩形,因为它们使用边界框。

您可以使用...

逐点测试对象的实际形状
hitTestPoint(someobject.x, someobject.y, true);

(参见documentation。)

对于自定义形状的命中区域,您还可以使用位图命中测试。 (See accepted answer here.

答案 1 :(得分:1)

碰撞检测多年来一直是编码员的主要障碍。有许多不同的方法可以检测碰撞:

我发现hitTestPoint是最实用的。但是,在您的情况下,您可能想要沿着BitmapData行: http://www.freeactionscript.com/2011/08/as3-pixel-perfect-collision-detection/

干杯, Drake Swartzy

答案 2 :(得分:-1)

你可以这样做     if(instanceName1.hitTestObject(instancename2) == true) { //execute the code you want } instanceName1和2是porgram中的给定名称