0

我正在阅读有关创建多个级别的教程,以下内容对我应该如何去做真的很感兴趣。

每个级别创建一个类似乎很自然,每个类都扩展了 AvoiderGame,并使用事件在它们之间切换。因此,我们可能有名为 AvoiderGameLevelOne、AvoiderGameLevelTwo 等的类,并让每个类在适当的时候触发“NavigationEvent.NEXT_LEVEL”。大概然后文档类会监听这个事件,当它听到它时,它会运行“playScreen = new AvoiderGameLevelTwo()”(或任何适当的级别),并将分数和时间等所有信息传递给这个新的播放屏幕实例。

我不完全确定如何去做。我把我的舞台,这是一个名为 level1、level2 等的类中的一组图块,并让它扩展了我的主类。为了检查一切是否正常,我在我的 main 中添加了一个名为 levelArray 的公共静态 var,它是一个空白数组。然后在 level1 中,我将数组推入 levelArray。

所以对于我的一级课

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 显示为空白。可能是因为这两个类没有正确地相互通信?如果我以正确的方式接近这个有什么想法吗?

4

1 回答 1

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然后将它们替换为每个进程。

于 2013-09-05T17:38:51.260 回答