摘 要
随着 ADOBE AIR 跨平台运行时的日趋流行,应用 ActionScript3.0 开发的 FLASHAPP 在各类手持设备上得到了飞速的发展。而 BOX2D 作为一款性能优越的 C++开源物理引擎,也移植到了 FLASH 平台上。在 FLASH 开发的众多手机游戏门类中,带有物理引擎的抛投类游戏正在逐渐成为一个闪亮的分支,流行于 Android、iOS 等主流移动操作系统的手持设备上。然而直接应用 FLASH BOX2D 物理引擎开发抛投类手机游戏,在物理抛投模拟,物体碰撞破碎,游戏场景编辑等方面都存在不小的开发难度,而且在开发的时间成本,游戏的运行效率等方面都遇到了不小的挑战。基于开发效率与游戏稳定性,在游戏开发中就很有必要进行总结归纳,进而创新出一套轻量级的,易于扩展的,简单易用的 FLASH 抛投类手机游戏开发架构与设计。
FLASH 抛投类手机游戏的基础思路是利用 BOX2D 物理引擎的强大功能,实现游戏中相应物体的多边形碰撞盒绘制。同时在普通抛投功能的基础上,应用物理几何理论知识,对抛投轨迹的多样性,趣味性进行设计与实现。对于碰撞破碎策略,则根据游戏实际应用的需求,综合考虑性能与开发复杂度的基础上给出合理的可选择方案。另外也充分考虑了游戏调试的便捷性与操控的多样性,对抛投类手机游戏的场景编辑器作了详细的设计与实现。而整体的框架设计则充分运用组件封装的概念与设计模式的思想,力求对 FLASH BOX2D 进行进一步的封装,以达到简单易用而又的易于扩展目的。
论文通过对 FLASH 抛投类手机游戏的详细分析,归纳了基于 FLASH BOX2D 物理引擎进行手机游戏开发的优势,并指出了开发过程中存在的各种问题。在对 FLASHBOX2D 技术进行的全面阐述的基础上,深入分析了物理游戏特殊效果的开发,并且针对抛投类手机游戏开发的主要技术与难点,比如多边形碰撞盒绘制,物理抛投,碰撞破碎,游戏场景编辑等一系列问题,提出了一套整合优化的开发方法。在此基础上设计与实现了一套快速,灵活,高效的基于 FLASH BOX2D 的抛投类手机游戏开发框架。
最后通过“攻城对决”实例游戏的开发,在时间成本、游戏运行的稳定性等方面,都取得的预期的效果,进一步验证了基于 FLASH BOX2D 物理引擎的抛投类手机游戏开发框架的实际应用价值。同时也为相关手机游戏的开发积累了重要的经验。
关键词 FLASH,BOX2D,抛投,物理碰撞,手机游戏
ABSTRACT
With the increasingly popular ADOBE AIR cross-platform runtime, application development FLASH APP ActionScript3.0 in various handheld devices has been rapid development. The BOX2D as a superior performance C + + open source physics engine, FLASH also ported to the platform. FLASH development in many categories of mobile games, tossing games with physics engine is gradually becoming a shining branch, popular on Android, iOS mobile operating system and other mainstream handheld devices. However, the direct application of FLASH BOX2D dumped class physics engine developed mobile games, dumped in physics simulation, collision broken objects, game scene editor, etc. There are more difficulty of development, but also in the time cost of development, operational efficiency and other aspects of the game have encountered no small challenge. Based on game development efficiency and stability, in game development it is very necessary to summarize, and then a set of innovative lightweight, easy to expand, easy-to-use FLASH dumped class mobile game development architecture and design.
FLASH-based mobile games category dumped the idea is to use BOX2D powerful physics engine to achieve the object of the game corresponding polygon collision box drawn.At the same function on the basis of common dumped on the application of theoretical knowledge of the physical geometry of the diversity dumped trajectory design and implementation be fun. For collision crushed strategy game based on the needs of practical application, considering alternative solutions given a reasonable basis for the performance and development of the complexity. There is also full account of the diversity of the convenience and control of the game debugging, dumped class of mobile gaming scene editor made the detailed design and implementation. The overall design of the full use of the ideological framework of component packaging concepts and design patterns, and strive to FLASH BOX2D further package, yet easy to use in order to achieve the purpose of easy expansion.
This article by a detailed analysis of the class mobile games, mobile games are summarized be developed based on FLASH BOX2D physics engine advantage, and pointed out the problems that exist in the development process. On the basis of a comprehensive technology FLASH BOX2D elaborated on in-depth analysis of the development of a physical game special effects, and the main technical and difficult for the dumped class mobile game development, such as drawing a polygon collision box, dumped physics, collision broken,game scene editing a series of problems, a set of optimized integrated development approach.On this basis, the design and implementation of a set of fast, flexible, and efficient class-based FLASH BOX2D dumped mobile game development framework.
Finally, the "siege duel" game development instance, in the time cost, stability and other aspects of the game to run, have achieved the desired results, and further validate the practical application of class-based mobile game development framework dumped FLASH BOX2D the physics engine value. At same time, this paper also for the development of mobile games related accumulated significant experience.
Keywords FLASH; BOX2D; Casting; Physical collision; Mobile Game
截止到 2013 年 2 月,作为真正跨平台、跨浏览器并在各种浏览器版本中提供一致网络体验的 Web 互动媒体标准,Flash Player 在全球电脑中的装机量为 13 亿台,是 PS、Wii 和 XBOX 系列游戏主机销量总和的 5 倍,Flash Player 新版本发布一周内浏览器更新量为 4 亿+。庞大的用户群体是商业开发 Flash 游戏的厚实基础。
Flash 游戏应用通过 Adobe AIR 打包,可以轻松的发布成 iOS 和 Android 等移动平台所使用的原生 App。截止到 2013,可开启自身硬件加速的移动设备数为 5 亿台,已经发布的 Flash 移动游戏 App 超过了 2.8 万个,Facebook 上 96%的游戏是用 Flash 开发。
在中国,每月四千万人玩的“开心农场 2”采用的也是 Flash 新技术 Stage3D,排名前九位的 Flash 网页游戏带来了超过 7 千万美元的月收入。
Flash 手机游戏开发的便捷性,在一定程序上也降低了开发商进入手机游戏行业的门槛。开发商们普遍认为 AdobeAir 是把他们的游戏转向移动市场最好的工具。
因此,选择FLASH 手机游戏开发作为本课题的内容进行深入研究,具有以下意义:
1.对从 Flash 网页游戏开发转向 Flash 手机游戏开发的人员来说,全面了解 Flash 手机游戏开发的现状,并在此基础上提高对 Flash Box2D 开发的认识。
2.通过对 Flash 手机游戏的各个功能模块进行细致的分析,为实际开发提高开发的效率,保证开发的质量。
3.通过实例的分析与实现,巩固对 Flash Box2D 手机游戏开发的认识,并找到不足之处,为将来的进一步提升打下坚实的基础。
在开发带物理引擎的 Flash 游戏中,Flash 常用的引擎主要是 Box2D。应用 FlashBox2D 构建物理世界的过程是比较繁琐,相当枯燥的,需要程序员与设计师的长时间沟通与协作,在不断磨合中,才有可能达到精确、合理的实现游戏物理世界的目标。如何简化物理游戏开发,优化碰撞盒数据的自动采集,实现物理与可见 UI 之间的精确绑定,是物理游戏快速成功构建的关键。
本文将通过对 Flash Box2D 核心概念的阐述,进而分析了物理基本形状的构建,并且逐步延伸到对不规则物体的模拟,最终实现复杂物体物理碰撞的搭建。在此基础上,分析设计、实现物理碰撞盒的图形化绘制。最后应用面向对象的设计方法与相关设计模式,对 Flash Box2D 物理引擎进行二次封装,实现物理碰撞盒与 UI 的快速绑定,最终整合成一套快速开发 Box2D 物理游戏的框架。
论文的重点是通过对 Flash Box2D 的技术模块应用的分析与实现,实现在 FLASH手机游戏开发中的实例应用,因此论文将以此为主线,分析 FALSH 手机游戏的发展现状,开发技术,以及 FLASH BOX2D 的各种场景的应用,最终形成比较完整的 FLASH手机游戏开发框架。论方共分 7 个章节,各章节安排如下:
第一章绪论,介绍了 FLASH 手机游戏发展的现状,以及 FLASH BOX2D 手机游戏的发展,并论述的项目的目的与意义,以及论文主要的内容。
第二章简要叙述了 FLASH 手机游戏的开发现状,分析了 FLASH 抛投类手机游戏的特点以及 Flash Box2D 物理引擎的应用优势,随后对 Flash Box2D 在手机游戏开发中存在的问题进行了论述,以使读者对 FLASH BOX2D 有了基本的认识。
第三章介绍了 FLASH BOX2D 的基础技术,对基本的 FLASH 物理游戏进行了深入浅出的分析,并在此基础上对 Box2D 特殊效果的实现进行了详细介绍,以使读者对FLASH BOX2D 有了全面深入的认识。
第四章主要是基于 FLASH BOX2D 物理引擎,对物理引擎进行进一步封装,设计EASY BOX2D 框架结构,并根据抛投类游戏主要功能进行分类设计,最后对游戏编辑器的结构进行了设计,为之后的实现打下坚实的基础。
第五章在之前 EASY BOX2D 框架结构的基础上,实现了 EasyBox2D 的游戏框架以及抛投类游戏的主要功能,最后对游戏编辑器进行了逻辑实现。
第六章是基于 EASY BOX2D 框架,进行抛投类手机游戏实例开发的介绍,论证了游戏框架设计的现实意义。
最后一章是对论文的总结各展望,对论文特色进行阐述,同时分析设计方法存在的不足,并对各模块的应用在将来的工作中的进一步探索进行了展望。
FLASH抛投类手机游戏部分界面演示:
浮力效果
液体粒子效果
粒子贴图后效果
粒子模糊后效果
真实液体效果
等比例缩放
EasyBox2D游戏框架总体结构
EasyBox2D游戏框架总体结构
目 录
1 绪 论
1.1 FLASH 手机游戏开发的背景
1.1.1 手机游戏平台发展现状
1.1.2 FLASH 手机游戏发展现状
1.1.3 FLASH 游戏技术现状
1.2 研究的目的和意义
1.3 论文的主要研究内容及结构安排
2 FLASH 抛投类手机游戏的需求分析
2.1 FLASH 开发手机游戏概述
2.1.1 Android 与 iOS 手机应用概述
2.1.2 FLASH 对设备的支持与 API 的限制
2.2 FLASH 抛投类手机游戏的特点
2.2.1 FLASH 抛投概述
2.2.2 FLASH 物理碰撞分析
2.2.3 FLASH 物体破碎策略分析
2.2.4 FLASH 游戏关卡设计
2.3 FLASH BOX2D 物理引擎的应用优势
2.3.1 Flash 物理引擎现状
2.3.2 Flash Box2D 应用优势
2.4 FLASH BOX2D 在手机游戏开发中存在的问题
2.4.1 Flash Box2D 游戏开发的效率
2.4.2 Flash Box2D 游戏开发的难度
2.4.3 FLASH BOX2D 手机游戏的优化
2.5 本章小结
3 FLASH 抛投类手机游戏的技术基础与关键
3.1 FLASH BOX2D 技术基础
3.1.1 Flash Box2D 核心概念
3.1.2 在 Box2DFlash 中定义世界
3.2 FLASH BOX2D 刚体创建基本步骤概述
3.2.1 创建刚体的定义
3.2.2 创建刚体的形状
3.2.3 创建刚体的夹具
3.3 常用物理刚体的创建
3.3.1 简单多边形的创建
3.3.2 简单多边形的快速创建
3.3.3 创建线条刚体
3.4 BOX2D 特殊效果的实现
3.4.1 浮力效果
3.4.2 流体效果
3.4.3 刚体的缩放效果
3.5 本章小结
4 EASYBOX2D 游戏框架的设计
4.1 EASYBOX2D 游戏框架总体结构
4.2 EASYBOX2D 结构设计
4.2.1 EasyBox2D 总体结构
4.2.2 EasyBox2D 管理类
4.2.3 FLASH 原生显示列表
4.2.4 Body 工厂
4.2.5 Contact
4.2.6 数据模块
4.2.7 工具类模块
4.3 抛投类游戏主要功能设计
4.3.1 抛投功能设计
4.3.2 碰撞功能设计
4.3.3 破碎功能设计
4.4 游戏编辑器的结构设计
4.4.1 场景数据格式的设计
4.4.2 场景数据的搭建模式
4.4.3 场景数据的绘制模式
4.4.4 特殊图形的扫描模式
4.4.5 场景数据的预览与保存
4.5 本章小结
5 EASYBOX2D 游戏框架的实现
5.1 EASYBOX2D 游戏框架的逻辑实现
5.1.1 世界封装类
5.1.2 EasyBox2D 工厂类
5.1.3 model 包
5.1.4 debug manage 包
5.1.5 多边形绘制辅助工具包
5.1.6 event 包
5.1.7 utils 包
5.2 抛投类游戏主要功能的实现
5.2.1 抛投功能的实现
5.2.2 碰撞功能的实现
5.2.3 破碎功能的实现
5.3 游戏编辑器的逻辑实现
5.3.1 搭建场景模块
5.3.2 绘制场景模块
5.3.3 特殊图形的扫描
5.4 本章小结
6 基于 EASYBOX2D 框架的物理游戏开发实例
6.1 游戏架构概述
6.1.1 用户注册模块
6.1.2 城堡建造模块
6.1.3 攻打城堡模块
6.2 游戏中物理城堡的实现
6.2.1 物理城堡概述
6.2.2 物理城堡的构建
6.3 游戏中投弹攻打的实现
6.3.1 投弹攻打概述
6.3.2 相应公式介绍
6.4 本章小节
7 总结与展望
7.1 总结
7.2 展望
参考文献
致 谢
(如您需要查看本篇毕业设计全文,请您联系客服索取)