我正在阅读有关创建多个级别的教程,以下内容对我应该如何解决此问题非常感兴趣。
每个级别每个级别创建一个类似乎很自然 扩展AvoiderGame,并使用事件在它们之间切换。所以,我们 可能有名为AvoiderGameLevelOne,AvoiderGameLevelTwo的类, 等等,让每一个人关闭一个“NavigationEvent.NEXT_LEVEL” 适当。据推测,文档类会听取这个 事件,当它听到它时,它将运行“playScreen = new AvoiderGameLevelTwo()“(或适当的级别),并通过 通过所有信息,如得分和时间到这个新的 playScreen实例。
我不完全确定如何解决这个问题。我把我的舞台,这是一个名为level1,level2等类的瓷砖数组,并让它扩展我的主类。只是为了检查一切是否正常,我在main中添加了一个名为levelArray的公共静态var,它是一个空白数组。然后在level1中,我将我的数组推入了levelArray。
所以对于我的level1类
package {
public class Level1 extends Main {
public var floor1:Array = new Array();
floor1[0] = [2,1,1,1,1,1,2];
floor1[1] = [1,1,1,1,1,1,1];
floor1[2] = [1,1,1,2,1,1,1];
floor1[3] = [1,1,1,1,1,1,1];
floor1[4] = [1,1,1,2,1,1,1];
floor1[5] = [1,1,1,1,1,1,1];
floor1[6] = [2,1,1,1,1,1,2];
public function Level1() {
Main.levelArray.push(floor1);
}
}
}
似乎没有用。 levelArray显示为空白。可能是因为这两个类没有正确地相互通信?如果我以正确的方式接近这个想法会有什么想法吗?
答案 0 :(得分:2)
我不知道你的其他概念是否合理,但我认为你所展示的部分的语法是关闭的。尝试:
package {
public class Level1 extends Main {
public var floor1:Array = new Array( [2,1,1,1,1,1,2],
[1,1,1,1,1,1,1],
[1,1,1,2,1,1,1],
[1,1,1,1,1,1,1],
[1,1,1,2,1,1,1],
[1,1,1,1,1,1,1],
[2,1,1,1,1,1,2]
);
public function Level1() {
Main.levelArray = floor1;
}
}
}
编辑:如果每个级别唯一不同的是构成底层的数组,您可以考虑这样一个事实:您不需要为每个级别创建一个新类,只需要一个新数组。您可以为类中的每个级别定义数组super
,然后将其替换为每个级别。