多个级别

时间:2013-09-05 17:12:29

标签: actionscript-3 flash-cs5 tiles-game

我正在阅读有关创建多个级别的教程,以下内容对我应该如何解决此问题非常感兴趣。

  

每个级别每个级别创建一个类似乎很自然   扩展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显示为空白。可能是因为这两个类没有正确地相互通信?如果我以正确的方式接近这个想法会有什么想法吗?

1 个答案:

答案 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,然后将其替换为每个级别。