嗨,我有一个难以用言语解释的问题,所以让我给出一张图片然后尝试解释。由于我在计算器我不能上传后的图片的新用户,所以我会放一个链接:http://tinypic.com/r/kbrpt2/6AS3:具有多个形状对象的testHitObject
我想要什么:
我希望能够将我的播放器(蓝色球)至2点并调用函数player.hitTestObject(Wall)并获取值false
所以我的问题是:
当我将玩家(蓝色球)移动到点1或2并调用函数player.hitTestObject(Wall)时,它会返回值真
所以基本上:
我想要的功能ion player.hitTestObject(Wall)只有在触摸对象(形状)的灰色部分时才会返回true,并且当播放器对象位于Wall对象的中间但未触及灰色部分(形状)时,我希望它返回false。
一个解决方案(但不是最优):
一种解决方案是创建3个对象,比测试3次,看看玩家对象有接触任何墙壁,那就是在这个简单的例子确定的,但如果你创造更大对象代码开始变得凌乱。
所以,如果有人知道任何其他解决方案我会感激。
谢谢你的回答。所以你认为这是更好的解决方案,通过数学和x,y线然后使用hitTestPoint()和hitTestObject()? – user1870213
是的,检查一个点是否在矩形内是比较快的。这里是一个简单的速度测试,我只是鞭打 - http://pastebin.com/iqad7x72 – robochase6000
值得注意的是,做像矩形数学(rect.x + rect.width)来获得矩形的右边缘,而不是使用flash的原生函数rect.right,所以我将它包含在测试中。 – robochase6000