如何改变另一个类的值?

时间:2014-03-04 03:48:23

标签: class actionscript-3 variables angle projectile

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

以编程方式添加敌人,他们在类文件中处理自己的动作。

我如何让他们射击子弹?

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

速度 角度 等

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

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

“如果敌人射击布拉布拉巴 的addChild(本) angle =((((((根据敌人的旋转?))))))

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

我知道_root。,但现在这无关紧要。

1 个答案:

答案 0 :(得分: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.
    }
}