要重置游戏,我是否需要动态添加对象?

时间:2014-04-11 00:26:59

标签: actionscript-3 flashdevelop

晚上好/早上好。

我在As3中创建了一个游戏,其中添加的敌人不是动态添加的。

if(hero attacks enemy)
{ then parent.removeChild(enemy) }

当英雄攻击敌人时,敌人将其从我认为的显示列表中移除。

但是当你重置关卡时,即回到开始菜单并返回到关卡,你会看到敌人不在关卡中,因为它们已被移除。

我的问题是,有没有办法可以重置该帧中的显示对象,在As2中我刷新了flash电影。但这在编码方面并不好,因为它表明你没有开发或学习。

如果没有办法,你会建议动态添加将被删除的对象吗?

另一个问题是我的等级是在容器中。

//on the stage, there is a movieclip called container. 
//In this container mc(movie clip) it contains the whole level, including platforms,
  //enemies and props 

如果我从该容器中移除道具,为了重置游戏,我会这样做

container.addChild(prop)
//the question is that how do I set it's x and y position?

谢谢,我将感谢所有人的反馈和建议。

2 个答案:

答案 0 :(得分:1)

是的,当您动态删除它们时,需要再次动态添加它们才能重置它们。你要么预定义他们的位置并重新设置它们,要么你可以隐藏这些敌人并让它们再次重现游戏重置。取决于您的代码和结构。

答案 1 :(得分:1)

理想情况下,最好不要将它们从显示列表中删除,而是将其隐藏起来并将它们重置回原点。

进入的一个好习惯是尽可能避免失控实例化的可能性;这意味着,如果你要在每次生成和杀死敌人时实例化并移除敌人,垃圾收集者必须非常努力地跟上。一个更好的方法是拥有一个足够大的敌人池,以支持你一次需要的敌人。