嘿大家所以在我的游戏中我正在创建我只需从库中拖动并将它们放在舞台上就可以将所有交互式对象添加到舞台上。然后在我的Engine类的Flash Develop中,我将它们放在一个数组中,如下所示:
aZebraArray = [startScreen.zebra_Front, startScreen.zebra_Middle, startScreen.zebra_Back, startScreen.zebra_Far];
在我的构造函数中,我通过他们给出的实例名称在舞台上添加元素,如下所示:
private function Round_1Controls():void
{
trace(aZebraArray.length);
for (var i:int = 0; i < aZebraArray.length; i++)
{
var currentZebra = aZebraArray[i];
if (crosshair.bullet.hitTestObject(currentZebra) && shotGun)
{
trace("HIT");
aZebraArray.splice(i, 1);
currentZebra.gotoAndPlay("DIE");
shotGun = false;
//Add points
nPoints += 50;
updatePointsText();
//Animals hit for stars
animalsHit ++;
}
}
然后在我的Enter_Frame监听器中,我循环遍历舞台上的对象,就像命中测试一样:
aZebraArray = new Array();
aZebraArray = [startScreen.zebra_Front, startScreen.zebra_Middle, startScreen.zebra_Back, startScreen.zebra_Far];
现在在我的游戏中,如果玩家没有获得3星,他就可以重试并重新启动那一轮。 问题我遇到的问题是,我不知道如何将舞台上的物品放回到他们刚开始的地方,因为当一轮开始时#34;斑马&#34;通过我在每个中制作的自定义补间来穿过舞台。另外我相信我可以像这样创建一个新数组:
private function replayRound_1(e:MouseEvent):void
{
continueScreen.mcRetry.removeEventListener(MouseEvent.CLICK, replayRound_1);
continueScreen.destroyContinueScreen();
round1 = true;
nAmmo = 0;
nAmmo += 5;
updateAmmoText();
animalsHit = 0;
hasAmmo = true;
gameChannel = gameSound.play(0, 999);
//aZebraArray = [];
aZebraArray = new Array();
aZebraArray = [startScreen.zebra_Front, startScreen.zebra_Middle, startScreen.zebra_Back, startScreen.zebra_Far];
for (var i:int = 0; i < aZebraArray.length; i++)
{
var currentZebra = aZebraArray[i];
currentZebra.gotoAndStop("RUN");
}
}
但是我怎么能重新开始他们所有的动画,这样他们才能再次穿过舞台?我知道我可以创建自己的类并将它们添加到数组中然后通过计时器对象控制它们但我在舞台上手动添加它们因为它们需要隐藏在后面或者在前面并且编码会很累。如果有人可以提供帮助,我会感谢它!谢谢!
这是我在重试函数中的内容,但它只是将数组中的1或2个对象添加回舞台。
{{1}}