Actionscript 3 检查两个形状之间的碰撞

Actionscript 3 检查两个形状之间的碰撞,actionscript-3,collision,shape,hittest,Actionscript 3,Collision,Shape,Hittest,我正在用as3编写一个小游戏,我需要检查两艘船之间的碰撞。 我不需要像素完美的碰撞,但边界碰撞也不够。 这条船看起来或多或少像这样: 我在考虑在船的后面创建一个正方形,在前面创建一个三角形,然后检查每艘船的正方形是否与另一个船的正方形或三角形碰撞,三角形也是如此 我只是不知道怎么做,我不知道Shape.hitTest是否可行,或者这是否是最好的方法 我能做什么?试试这个 var isTouched:Boolean = item1.bounds.intersects(item2.bounds);

我正在用as3编写一个小游戏,我需要检查两艘船之间的碰撞。 我不需要像素完美的碰撞,但边界碰撞也不够。 这条船看起来或多或少像这样:

我在考虑在船的后面创建一个正方形,在前面创建一个三角形,然后检查每艘船的正方形是否与另一个船的正方形或三角形碰撞,三角形也是如此

我只是不知道怎么做,我不知道Shape.hitTest是否可行,或者这是否是最好的方法

我能做什么?

试试这个

var isTouched:Boolean = item1.bounds.intersects(item2.bounds);

当两者都接触时,它将返回真值

我没有一个直接的答案,但我已经玩了一些真正基本的自上而下射击游戏开发(没有使用第三方库,就像3一样,我可能在这里使用了格兰特·斯金纳的类),用PNG进行命中检测似乎表现得很好。即使在屏幕上添加了大量的敌人和导弹,考虑到没有框架/优化,它也没有太大的延迟。它对我不起作用,我使用starling作为框架来构建我的游戏。这个类使用flash中的DiplayObjectContainer,我使用starling中的displayObjectContainer。。已经尝试更改导入,但是使用Starling不起作用,正如您所说,您最终使用的是一组不同的对象,这些对象不是从FlashAPI继承的,我相信它们通常重量较轻。查看这里的讨论:基本结论是你可以使用几个矩形来近似,因为纹理在GPU上,CPU无法真正获得每个像素的位置信息(不减慢GPU速度,从而否定使用GPU加速的意义)。这就是为什么我想知道我是否能创建一个形状,在船的格式中(使用更多或更少的5个点),并对另一艘船的每个点使用Shape.hitTest,如果其中一个返回true,则会发生碰撞,但我不知道Shapes的hitTest是如何工作的。这是一个好的解决方案吗?它会起作用吗?是的,我现在明白你的意思,但我自己还没有尝试过,我会在文档中搜索一下,看看我能不能指出什么。我认为你试图做的不会很好,如果你打算使用Flash显示对象来镜像东西以计算命中率,你最好放弃starling,我认为这对看不见的显示对象不起作用。如果你坚持使用starling,我认为你最好的选择是手动执行命中检测,多边形中的点解决方案似乎会奏效。