0

我正在制作一个游戏,我想在其中产生僵尸,然后让它们在屏幕上向下移动。我也想一次在屏幕上显示多个。我现在尝试了多种方法,但都没有奏效。

这是我的代码

if ((zombie == 1)||(zombie == 3)||(zombie == 5)||(zombie == 7))
{
    var Z = new Z;
    Z.x = 403.25;
    Z.y = -86.9;
    Z.rotation = 90;
    addChild(Z)
    zombie += 1;
}

//Functions
function startzombie(event)
{
    trace("start zombies")
    zombie = 1;
    addEventListener(Event.ENTER_FRAME,zombiemove) 
}
function zombiemove(event:Event)
{
    Z.y += 1;
}

Z是僵尸

4

1 回答 1

0

您需要一个 Array 来保存对您的僵尸实例的引用,而不是 Zombie 类的单个变量,无论它的名称是什么。然后,在移动僵尸的部分代码中,您遍历该数组并推进其中的所有僵尸。您还需要检查一些僵尸是否已经失效,以便您需要将它们从屏幕和阵列中删除,并采取相应的行动。

var za:Array; // initialize elsewhere
....
function addZombie():void {
    var z:Zombie=new Zombie();
    z.x=Math.random()*600; // position that zombie
    z.y=-20; // somewhere
    addChild(z);
    za.push(z);
}
function advanceZombies():void {
    for (var i:int=za.length-1;i>=0;i--) za[i].walkABit();
}

你在僵尸类中调用一个专门为移动僵尸而设计的方法。可以说他们被击晕或减速,这样这个动作就不会发生,而且控制每个僵尸的可变行为对你的主类没有任何意义,这就是所谓的“黑匣子概念”。你说“移动”,如果他们有能力,他们就会移动。

于 2013-03-16T03:53:59.297 回答