首页 文学文摘 时政新闻 科技科普 经济法律 健康生活 管理财经 教育教学 文化艺术 社科历史

Flash平台游戏框架搭建

作者:李鑫 关鹏 来源:电子技术与软件工程

flash平台提供了十分便捷的应用开发环境,然而不少功能并不是为游戏开发所准备的,本文中将关于在flash平台搭建游戏框架进行简单分析,使得在游戏框架上的游戏开发更加结构化与合理化。

【关键词】Flash 游戏框架 游戏开发

1 引言

游戏开发之前要决定的第一件事就是决定使用哪种程序语言或平台作为工具,而flash作为一个开放的应用开发平台,可以支持中小型游戏的运行。Flash游戏在互联网上的广泛出现也充分说明了flash开发的灵活性。然而Flash平台本身提供的接口并不是为游戏开发而制作的,所以在flash游戏开发中人为的搭建游戏框架成为游戏开发的重要环节。本文将围绕flash平台游戏框架搭建的几个方面做出简要分析。

2 游戏框架搭建

2.1 游戏流程控制

目前很多flash应用都是采用文档类驱动的。然而部分flash应用的开发者如果对于文档类的驱动机制理解的不够深入的话,写出来flash应用的流程会十分混乱。对于简单游戏的流程而言可以分为3个主要的阶段:

(1)游戏数据初始化。

(2)游戏主循环。

(3)游戏结束数据结算。

在flash平台上我们可以利用时间轴上的帧完成流程控制。而这里的帧完全为流程控制服务,并不是作为一个flash动画高速播放帧来完成动画效果。简单而言,我们利用3个帧完成前面所叙述的3个阶段。每一个帧插入stop()函数,使其停留在该帧。在第一帧内插入游戏数据初始化函数,以及游戏开始界面按键的事件监听。通过按钮的事件监听完成进入下一阶段的转换。第二帧主要在文档类中完成游戏主循环,其中核心函数为进入每一帧事件的响应函数,完成游戏主循环的数据处理和更新。在第二帧插入对于游戏结束事件的监听(该工作一般在文档类中实现),控制其进入第三帧。第三帧插入对重新进行游戏按键的事件监听,使得当前帧变回第一帧(或者直接进入第二帧主循环)。这样在三个帧中插入相对应的代码,并且在对应帧的舞台上添加好对应的游戏元素,即完成了简单的流程控制。对于复杂的游戏流程可以加入更多的帧,上述的每个阶段分解为更多的帧或者用动画片段完成阶段转换。

2.2 元素容器控制

在游戏场景内可以与玩家进行某种方式交互的虚拟物体,叫做游戏元素。随着游戏复杂度的增加,游戏界面中出现的元素就会大量的增长。对于出现在舞台上的游戏元素如果不加管理,则会造成游戏元素的分布混乱,无法统一进行变量修改等情况。在这里我们可以将元素属性相类似或者连接紧密的元素放在一个统一的容器中。在本文中将这样的容器称为块(Block)。其他游戏引擎例如cocos2d中也有类似的容器概念,在那里称之为层(Layer)。首先我们可以将一个场景设计为一个块,在场景块中加入所有当前游戏场景的所有元素,通过在舞台上更换场景块完成场景转换。场景块中可以设计出静态背景块,动态背景块,分别控制不同的游戏元素。动态背景块中添加游戏中动态变化的元素,例如人物,野怪等等。当然当游戏元素本身足够复杂时也可单独设置为一块,例如在人物块中可以加入人物的分身,技能效果等元素。用块这样的容器的目的是易于管理,当我们对元素进行位置改变时,往往是对一整个块中的元素进行处理,而AS中的位置坐标不是绝对坐标,而是相对于父容器相对坐标。所以我们只需要考虑元素在其所在块中的位置即可,不必考虑当块整体发生变化时,元素需要相对舞台做出的复杂变化。

2.3 事件消息机制

flash本身提供了功能强大的消息处理机制,并且通过事件监听器完成对事件发生的检测和处理。游戏中最常见的就是对外设输入的响应,这与游戏的操作密切相关,包括鼠标和键盘产生的各种输入事件。游戏的各个元素也会产生事件,例如人物触发了某一个任务,而在一个任务管理元件中会监听到其发生的事件,并对其进行处理。此外定时器也是常用到的一个功能,游戏中会大量出现时钟驱动的事件,例如技能cd,野怪刷新间隔等等。可以通过监听定时器发生的事件来完成相应的处理。

2.4 物理机制引入

一个好的物理引擎可以尽可能的还原真实世界的感觉。开发者可以选择引用现成的物理引擎如Box2D,或者开发者自己在编程中加入简单的,和本游戏内容密切相关的物理变化。举个非常简单的例子,在游戏中驾驶一辆匀加速行驶的汽车,根据经典力学的公式,假设本应用采取的帧频为30帧每秒,则帧与帧之间处理的时间间隔为秒,(实际运行中可能会大于此数值)则在游戏的主循环中每一帧都利用公式根据当前保存的速度和加速度,以及将时间为带入计算出每一帧汽车产生的位移,然后根据原坐标和位移修改汽车在容器中的坐标(第一人称视角修改背景坐标),计算新的初速度以供下一帧使用。而更复杂的情况则是要更多的考虑物体碰撞及不规则运动等等在这里不再继续讨论。

3 小结

本文通过对flash平台游戏框架搭建的几个方面进行了简要的分析和设想,为在flash平台开发游戏应用的开发者提供思路和想法。而在实际应用的过程中应该更加根据效率问题和实际情况自行完善对游戏框架的搭建。

参考文献

[1]胡昭民,吴灿铭.游戏设计概论 [M].北京:清华大学出版社,2013.

[2]信息产业部软件与集成电路促进中心,北京汇众益智科技有限公司.游戏架构设计与策划[M].北京:电子工业出版社,2007.

作者单位

大连理工大学 辽宁省大连市 116100