0

我会尽量解释这个问题。我想要做的是检查对象之间的碰撞。还有子弹和敌人,如果它是子弹的 1 和敌人的 1,那没问题,但是在谷歌上一天之后,尝试了所有解决方案,我无法让它工作,或者我找到了解决方案这绝对是可怕的解释。我要让它变得更容易。我有 MainClass.as 那个文档类。这是敌人的一类,子弹的一类。我希望每个人都明白,我不想检查子弹击中是否是敌人。或者其他方式。例如,由于项目符号是在单击时制作的,因此无法直接引用项目符号。我尝试过的是使用精灵容器,如果我将子弹放在敌人身上只是为了检查,它确实有效,但是如果我把一个放在下面和上面,那并没有击中敌人,它仍然说敌人被击中了。请注意,敌人被拖到舞台上,因为我将拥有多个。我也可以用代码添加它们。我尝试使用 Array 在所有敌人之间洗牌,但我无法让它工作。

我知道这是很多文字。希望有人愿意帮助我,这太令人沮丧了......

最好的问候 HFherasen!:):)

4

1 回答 1

1

好吧,如果您不使用 Box2DFlash 之类的物理引擎,那可能会令人沮丧。

首先,你必须知道子弹的速度/帧数,因为如果它在一帧内超出目标,简单的检测将不起作用。比,你应该有子弹的速度和方向。为简单起见,让我们使用它的一个点。(子弹头,或中间)子弹通常比目标移动得快很多,所以你可以假设目标是固定的。目标是一个矩形,或可能旋转的多边形。

现在你有了一个目标和一条子弹线(从点和方向)。 http://keith-hair.net/blog/2008/08/04/find-intersection-point-of-two-lines-in-as3/ 你可以使用这个(转换为as3),与目标的所有方面(或仅面向子弹的那些),如果匹配,则射击将击中目标。如果您的子弹速度较慢,您可以将帧的位置更改作为您的第一行。当它击中目标时,你会知道。这非常快,而且效果很好。希望它有所帮助。

于 2012-12-03T12:29:00.967 回答