0

我的问题与处理显示对象数组时类的解耦有关。

假设正在制作 PacMan 游戏,在我的 main.as 文件中,我会调用constructLevel.as 来构建关卡的不同部分(图形)。

现在让我们说 pacman 吃的“食物”在一个数组 foodArray 中,现在最好将 foodArray 保存在 main.as 中以便 main 可以轻松访问它,或者将 foodArray 放在constructLevel 中会更好。

在第一个场景中,constructLevel 要求 main.as 中存在适当的变量,在本例中为 foodArray。然而,在另一种情况下,main 总是需要引用constructLevel.foodArray 来获取数据,仍然和以前一样的耦合,但是数据已经从main 转移到了constructLevel

第三种解决方案是创建一个封装所有数据的黑板。

我不确定在这种情况下的最佳做法是什么。

4

1 回答 1

0

我会这样……创建类:LevelLevelConstructor。这样LevelConstructor将构建Level对象并返回它们。因此,从类中,我们创建一个新关卡,如下所示:

var newLevel: Level = levelConstructor.build(..);

在这种情况下,我们在newLevel对象中有foodArray和关卡的所有其他细节。通过这样做,我们将关卡数据和关卡构建算法分开。levelConstructor对象可以有任意数量的属性和方法来构建关卡,你的游戏需要的任何东西。

于 2012-11-14T06:11:46.540 回答