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 に答える