我会尽力解释这个问题。 我想要做的是检查对象之间的冲突。还有子弹和敌人,如果它是1号子弹和1号敌人就没问题,但是在谷歌上玩了一天之后就像我解决的每一种解决办法一样,我无法让它发挥作用,或者我发现一个解决方案非常糟糕的解释。 我会让它更容易。我有MainClass.as那个文档类。 它是敌人的一个级别,也是子弹的一个级别。我希望每个人都明白我不会检查子弹是否击中了敌人。或者另一种方式。由于子弹是在点击时制作的,因此不可能直接引用子弹。我尝试过的是使用精灵容器,如果我把子弹放在敌人身上只是为了检查,它确实有效,但是如果我把它放在一个不停的位置,那就不会击中敌人,它仍然会说敌人受到了打击。 注意,敌人被拖到舞台上,因为我将拥有多个敌人。我也可以用代码添加它们。我曾尝试使用Array在所有敌人之间进行洗牌,但我无法让它发挥作用。
我知道这是很多文字。希望有人愿意帮助我,这太令人沮丧......
最好的问候HFherasen!:):)
答案 0 :(得分:1)
好吧,如果你不使用物理引擎,比如Box2DFlash,那就太令人沮丧了。
首先,您必须知道子弹的速度/帧,因为如果它在一帧中超出目标,则简单检测将不起作用。 比,你应该有一个子弹的速度和方向..为简单起见,让我们使用它的一个点。 (子弹的头部,或中间) 子弹通常比目标移动得快很多,因此你可以假设目标是固定的。 目标是一个矩形,或可能旋转的多边形。
现在你有了一个目标和一条子弹线(从点和方向)。 http://keith-hair.net/blog/2008/08/04/find-intersection-point-of-two-lines-in-as3/ 您可以使用此目标(转换为as3),使用目标的所有边(或仅面向子弹的那些边),如果匹配,则镜头将击中目标。 如果您的子弹较慢,您可以将帧的位置更改为第一行。当你碰到一个目标时,你会知道。这很快,效果很好。希望它有所帮助。