Cocos2d子弹运动

时间:2012-07-14 20:57:14

标签: cocos2d-iphone game-physics ccsprite

截至目前,我有一个子弹(一个精灵)使用CCAction移动到球员位置。我设置它使得子弹总是使用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];
    }

如果在范围内(我认为我有那个部分)需要知道如何射击,朝着玩家位置射击并继续向那个方向前进(不知道如何做到这一点),并且对于子弹精灵来说在它行进了相当于枪范围的距离后被移除(也不知道这一点)。请帮助。

1 个答案:

答案 0 :(得分:1)

这条线对我没有意义:

bullet.position = enemy.position;

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

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

希望这有帮助!