如何将一个动画片段添加到舞台然后让它向下移动?

时间:2013-03-16 00:27:38

标签: actionscript-3

我正在制作一个游戏,我想生成僵尸,然后让它们向下移动到屏幕上。我也希望一次在屏幕上有多个。我现在尝试了多种方法,但没有一种方法有效。

这是我的代码

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是僵尸

1 个答案:

答案 0 :(得分:0)

你需要一个数组,它将保存对你的僵尸实例的引用,而不是名为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();
}

你在专为移动僵尸而设计的Zombie类中调用一个方法。他们可以说是震惊或减速,这样这一举动可能不会发生,并且你的主要课程没有任何协议来控制每一个僵尸的可变行为,这就是他们的名字& #34;黑匣子概念"。你说"移动",如果他们能够移动他们就会移动。