我正在做的游戏有问题。我基本上有地图中的对象,如果它们与墙壁发生碰撞,我必须检查它们中的每一个(然后做一些事情)。因为在使用 AS2,所以我考虑过同样的方法:我画了一张只有墙壁的图片,所以只有矩形,中间的所有其他东西都是透明的(不存在,例如地板)。在 AS2 中,我将图像放到屏幕上,我们称之为墙,然后我对每个对象进行了 hitTest 墙。例如,对象实际上在图像上,因为透明部分是图像的一部分,但该功能仅在可见部分上进行测试,墙壁也是如此。所以它奏效了。
现在在 AS3 中没有HitTest
but hitTestObject
,我使用过,例如wall.hitTestObject(object)
. 问题是这个功能就好像它没有看到透明胶片一样,物体在不接触墙壁的情况下会与它们发生碰撞!
我发现PixelPerfectCollisionDetection
它实际上解决了问题,但它又大又重,所以在我的情况下,每帧有这么多要测试的对象(至少 60 个),游戏速度变慢了很多!
我需要的是一个hitTestObject
处理图像透明部分的功能(我不需要很高的准确性!)。
我能怎么做?