0

我有一个敌人类和一个子弹类。

敌人是通过编程方式添加的,它们在类文件中处理自己的动作。

我将如何让他们射击子弹?

在子弹类中,有一些变量。

速度角等

但是我怎样才能得到正确的角度呢?我需要基于射击子弹的特定敌人的旋转角度。

所以我需要在子弹类文件中添加这样的东西:

" 如果敌人在射击 blablaba addChild(this) angle = ((((((((基于敌人的旋转?))))))

我该怎么做?我不知道如何引用其他类中的变量..

我知道 _root.,但现在已经无关紧要了。

4

1 回答 1

0

在这种情况下,您Player可能有一个fire()处理此问题的函数。

作为一个非常简单的例子,你可能有:

public function fire():void
{
    var bullet:Bullet = new Bullet(x, y, rotation);
    stage.addChild(bullet);
}

Bullet将接受起始位置和旋转的位置:

class Bullet extends Sprite
{
    public function Bullet(x:int, y:int, rotation:Number)
    {
        this.x = x;
        this.y = y;
        this.rotation = rotation;
    }
}

这使您可以轻松地推进您的fire()功能以处理诸如玩家拥有不同武器、没有弹药等的事情:

public function fire():void
{
    if(currentWeapon.ammunition === 0) return;

    if(currentWeapon is Handgun)
    {
        // Make a HandgunBullet.
    }

    if(currentWeapon is Shotgun)
    {
        // Make a ShotgunBullet.
    }
}
于 2014-03-04T03:52:27.360 回答