AS3 OOP游戏开发结构

时间:2010-10-23 21:28:57

标签: actionscript-3 oop structure

我想知道动作脚本3游戏开发的最佳实践是什么。 我目前正在创建基于磁贴的游戏,但我已经遇到了使用单独类的麻烦。

这是目前的情况:

主要课程

  • 生成切片
  • 添加播放器类
  • 添加接口类

接口类包含所有接口元素。例如,可以选择将对象生成到游戏中。此对象可以放在选定的图块上。

现在遇到的问题是:生成的对象放在接口类中,生成的对象应该如何与tile进行通信? 同样的问题出现在游戏中的其他几个部分。就像玩家应该如何与衍生对象进行交互一样?一切都在不同的阶级,使所有这些事情之间的沟通变得如此困难。

是否有任何关于游戏开发的标准程序来处理这个问题?我正在考虑制作一个“世界”类,其中每个对象都应该以某种方式放置。但实际上,我很难用这种结构来了解这个结构。 这对我来说都是新的,所以如果解释尽可能不作证,我将不胜感激。 提前谢谢!

3 个答案:

答案 0 :(得分:1)

您可以使用事件调度让您的对象相互通信,有几种方法可供使用,其中一种更简单的方法是创建一个控制器类,其唯一的责任是调度和调度。听取事件,以便告知相关课程游戏中发生的事情

更好的方法可能是使用Robotlegs这样的框架,学习曲线有点陡峭,但值得付出额外的努力。
http://www.robotlegs.org/

您应该很容易找到示例& Robotlegs的教程。

答案 1 :(得分:1)

尝试以稍微不同的方式想象游戏部分的组织。首先,您提到的这个World类可以包含Map对象,也包含生成的玩家或生物的Unit对象。 Map对象,其中还包含Tile个对象,每个对象都有自己的信息作为地形和属性。此外,Unit对象将包含与每个生成相关的信息。对于与播放器的交互,您可以拥有一个Game对象,其中包含World和播放器的表示形式,即Player对象,此Game对象将将玩家的指示传达给World以使事情发生。正如您所看到的,每个对象都包含其他更精细的对象,World包含Map包含Tile的对象,这样高级对象就会使用更低级别的对象并使它们成为可能所有人都在沟通。

这可能是一种快速启动或在实验时学习的好方法。更复杂的情况需要其他方式来安排游戏的所有信息,如模型 - 视图 - 控制器结构,但在你学会了足够的知识以了解需要更好的解决方案之前,你可能不必担心它。

答案 2 :(得分:0)

我建议稍微阅读一下设计模式。单例Dispatcher类可以帮助您,只需将所有内容绑定到它并将事件从一个实体发送到另一个实体。

不使用内置事件的原因是您需要将对象放在显示列表中。