0

到目前为止,我使用 CCAction moveTo 将子弹(精灵)移动到玩家位置。我进行了设置,以便子弹始终使用 t = d/v 以恒定速率行进。但我需要帮助,以便子弹穿过给定点并继续前进一定距离。

CCSprite * bullet = [CCSprite spriteWithFile:@"Projectile.png"];
    int gunRange = 300;
    int velocity = 300;
    int  t = distanceFromPlayer/velocity;
    CCAction *shoot = [CCMoveTo actionWithDuration:t
                                          position:player.position];
    bullet.position = enemy.position;
    if (distanceFromPlayer <= gunRange) {
        [self addChild:bullet];
        [bullet runAction:shoot];
    }

需要知道如何在射程内射击(我想我有那个部分),朝玩家位置射击并在那里继续朝那个方向前进(不知道如何做到这一点),并在之后移除子弹精灵它已经行进了等于炮射程的距离(对此也不知道)。请帮忙。

4

1 回答 1

1

这条线对我来说没有意义:

bullet.position = enemy.position;

使用 MoveTo 将子弹移动到敌人的位置而不是上面的线。

另外,要将子弹从敌人身边移到某个位置,只需使用我们都会学到的旧高中三角学——直角三角形的 SOH CAH TOA。你有子弹的角度和到敌人的距离,所以使用信息和直角三角形触发,你可以让子弹经过目标一定距离

希望这可以帮助!

于 2012-07-14T23:00:38.280 回答