摘要
Flash 作为互联网 Web2.0 的主要技术之一,对人们的网络生活产生深远的影响。当今的主流网络浏览器无一不支持 Flash 技术。近年来,计算机游戏成为人们上网的主要娱乐方式,整个游戏行业发展迅猛,游戏产业也逐步出现细分。Flash游戏作为新兴的游戏细分领域,引起越来越多的用户和游戏开发商的注意。整个Flash 游戏产业正处于高速发展阶段。相关数据显示,2009 年中国网页游戏市场规模为 9.9 亿元,2010 年达到 22.8 亿元,同比增长 131.2%。预计在 2013 年可突破50 亿关口,达到 50.4 亿元。以 flash 为首的网页游戏正随着社交网络以及移动互联网的大潮迅速发展和普及,逐步成为人们网络休闲生活的一个重要组成部分。
本论文正是针对当前Flash游戏大受欢迎的趋势,结合本公司当前的业务需求,在深入研究了 Flash 游戏的开发过程和技术难点的基础上,设计并实现了一个基于Actionscript3.0 的 Flash 位图渲染引擎,为提高 Flash 游戏开发效率、满足本公司业务需求作铺垫。主要内容为:
1.研究了 Flash 的位图渲染方式和储存方式,设计了统一加载和处理位图的模块,为本引擎其他模块提供基础性服务。
2.研究了 Flash 游戏开发过程的一般流程和需求,将 Flash 游戏中的元素分类,提取共同特征,以基础模块 SprObject、SprPlayer、SprRobot、SprScene、SprSceneGroup 对游戏中的元素进行管理。其中 SprObject 提供了最基本的位图加载、储存和处理功能;SprPlayer 为游戏核心角色提供了动作渲染、运动管理、重力、状态数据等管理接口;SprRobot 主要提供游戏次要角色的管理,功能与SprPlayer 类似;场景的加载和储存由 SprScene 负责,SprSceneGroup 则负责场景的组合运动管理。
3.研究了游戏对象间的碰撞原理,通过对点碰撞检测法与区域碰撞检测法的论述和优缺点对比,本引擎实现了区域碰撞检测模块 SprCollision,提供了碰撞检测功能。
4.研究了 2D 游戏场景和角色协调运动过程,设计并实现了卷轴运动管理模块 SprMoveManage,用于协调和管理整个游戏的场景与角色运动。
关键词:Flash,位图渲染引擎,碰撞检测,卷轴运动
BSTRACT
Flash, as one of the major internet technique in the days of web2.0, has made a tremendous difference in the network life of human. The main web browser all support build-in Flash player. In recent years, computer games have become the main way of entertainment for people's network life. With the development of computer game industry, subdivision game industry has emerged. Flash game, as one of the subdivision game industry, is getting more and more attention of game player and developers. The flash game industry is at a stage of rapid development. Relevant materials show that the market size of web game in china reached 990 million RMB in 2009, while reached 2.28 billion in 2010, an increase of 132.2 percent. The web market size is expected to break through 5 billion in 2013, reach 5.04 billion RMB. The web game, headed by Flash, with the development of social networks and mobile internet, is becoming one of the most important part of people's network life.
With the trend of vastly more popular web Flash, combination of our company demand, this paper study on the flash game development process and the difficulties of flash,design and implement a bitmap render engine using ActionScript3.0. The enginecan increase the efficiency of game development, but also meet the demand of our company. The main content of this paper includes four parts:
1) Studying on the bitmap rendering and storing styles, a module has been developed for bitmap unified management. This module can provide basic services of other modules.
2) Studying on the flash game development process and demand, sorting through the flash game elements and extracting common features, some basic module such as SprObject, SprPlayer, SprRobot, SprScene and SprSceneGroup have been developed to manage the flash game elements. SprObject provides basic function such as bitmap loading, storing and processing. SprPlayer provides function such as action rendering, moving management, gravity management, status data management. SprRobot provides the similar function with SprPlayer. SprScene is in charge of scene loading and storing,while SprSceneGroup take charge of scene combination and moving management. 3) Studying on the collision theory of game objects, by comparing the point collision detection and area collision detection, a module of this engine Sparrow, called SprCollision, provides the collision detection service.
4) Studying on the scene and player motor process of 2D game, a module called SprMoveManage was designed and implemented to take charge of scroll moving.
Keywords: flash, bitmap rendering engine, collision detection, scroll moving.
本文工作是实现一个 Flash 位图渲染引擎,取名为 Sparrow。具体的工作主要分为三部分。
1)研究了 Flash 游戏开发过程的基本开发流程,分析 Flash 游戏开发者的需求,发现位图加载和处理操作是一种基础操作,因此设计和实现了一个模块统一处理位图的加载和操作。
2)通过研究 Flash 游戏中各种对象的特点,提取共性,根据软件工程设计原则,封装成了基础对象模块 SprPlayer、SprRobot、SprScence 和 SprSceneGroup。SprPlayer主要用于处理游戏中的核心运动角色,SprRobot 主要用于处理游戏中的次要运动角色,而 SprScene 主要处理场景中的各种场景元素,SprSceneGroup 则是处理各种场景组合特性。
3)通过研究对象的碰撞过程,详述了点碰撞检测法和区域碰撞检测法的原理以及使用场景,设计了 SprCollision 模块实现了这区域碰撞检测功能,SprCollision作为引擎的核心模块,为其它模块提供碰撞检测服务。
4) 研究了 2D 游戏场景和角色协调运动过程,设计并实现了卷轴运动管理模块 SprMoveManage,通过该模块可使环境运动和角色运动进行联动,用于协调和管理整个游戏的场景与角色运动。
本论文主要通过研究Flash游戏开发流程和相关需求,设计和实现了一个Flash位图渲染引擎 Sparrow。本论文后续章节的主要结构安排如下:
第 2 章,介绍了 Flash 相关基础技术和开发环境,由于本引擎全部采用 ActionScritpt 3.0 作为编程语言,因此有必要将相关技术作为单独一章来介绍,为后续章节作铺垫。
第 3 章,研究了 Flash 游戏开发流程,通过需求分析,详细论述了游戏引擎应该满足的基本需求以及相关的限制条件。该需求分析为本引擎的设计和实现界定了基本范围,并提出了引擎需要实现的核心功能。
第 4 章,详细论述了 Sparrow 引擎的总体设计过程,包括引擎设计原则、总体架构、用例图、类图等,最后还简要介绍了 Flash 开发环境以及 Flash 舞台的座标系统,为第 5 章论述引擎详细设计作铺垫。
第 5 章,为本论文的核心部分,详细论述了 Sparrow 引擎各种模块的主要功能、实现原理和实现细节。
第 6 章,使用 Sparrow 设计一个 Flash 演示游戏,通过该游戏的设计实现过程,展现了 Sparrow 引擎在 2D 游戏设计中的开发效率以及可靠性。本章还对 Sparrow引擎做了详细的功能测试,通过功能测试确保引擎满足需求分析中提出的各种需求,也是对第 3 章的回应。
第 7 章,总结和展望,指出当前 Sparrow 引擎仍待完善的地方,这些将作为后续优化的重点方向,只有不断优化,才能使 Sparrow 引擎在实用性上不断提高,也才能为引擎对外开放提供必要的技术积累。通过本章的优化总结,为后续引擎的研究和完善指明方向。
Flash游戏位图渲染引擎设计测试截图:
角色位图样例
运动渲染
反向动作渲染
采用同位置播放一轮动作
第一轮和第二轮交接
多场景元素融合示意图
卷轴运动边缘处理
目录
第一章 绪 论
1.1 FLASH 游戏引擎概况
1.2 游力科技公司简介
1.3 国内外研究现状
1.4 本文主要工作
1.5 论文的文章结构按排
第二章 FLASH 相关技术简介
2.1 ACTIONSCRIPT3.0 简介
2.2 ACTIONSCRIPT3.0 中的位图存储简介
2.3 FLASH 播放器座标系统
2.4 开发工具
第三章 FLASH 位图渲染引擎需求分析
3.1 FLASH 平面游戏开发流程
3.1.1 游戏视角类型选择
3.1.2 游戏引擎选型
3.2 游戏引擎需求分析
3.2.1 需求分析的目标
3.2.2 功能需求分析
3.2.3 引擎接口需求
3.2.4 非功能性需求
3.2.5 引擎适用范围
3.3 本章小结
第四章 SPARROW 引擎总体设计
4.1 设计原则
4.2 SPARROW 引擎总体架构
4.2.1 总体架构图
4.2.2 本人负责的模块
4.3 引擎类图
4.4 本章小结
第五章 SPARROW 引擎详细设计与实现
5.1 SPROBJECT 基础对象模块
5.2 游戏角色 SPRPLAYER 模块
5.2.1 角色位图加载和动作渲染
5.2.2 反向动作渲染
5.2.3 水平位移及平滑处理
5.2.4 跳跃及重力效应
5.2.5 精细位移处理:位移和动作联动
5.3 游戏自动角色 SPRROBOT 模块
5.3.1 路径定义
5.3.2 自动路径运动算法
5.3.3 全局运动增量修正
5.4 游戏场景模块 SPRSCENE
5.4.1 SPRSCENE 类
5.4.2 场景元素拼接方式
5.4.3 SPRSCENE 类主要接口及时序图
5.5 场景组模块 SPRSCENEGROUP
5.5.1 场景组合位置管理
5.5.2 场景组合移动管理
5.5.3 多碰撞区域管理
5.6 碰撞检测模块 SPRCOLLISION
5.6.1 点碰撞检测法
5.6.2 区域碰撞检测法
5.6.3 碰撞方向感知和处理
5.6.4 SPRCOLLISION 类图
5.7 整体运动管理模块 SPRMOVEMANAGE
5.7.1 卷轴运动
5.7.2 卷轴边缘处理
5.7.3 SPRMOVEMANAGE 类介绍
5.8 本章小结
第六章 SPARROW 引擎测试
6.1 游戏角色制作
6.1.1 制作角色位图
6.1.2 核心角色加载和初始化
6.1.3 次要角色加载和初始化
6.2 游戏场景制作
6.2.1 场景位图制作
6.2.2 场景元素加载和初始化
6.2.3 场景组合
6.3 舞台初始化
6.4 全局运动协调
6.5 生成 SWF 文件
6.6 功能测试
6.6.1 场景测试
6.6.2 主运动对象测试
6.6.3 自动运动对象测试
6.6.5 站立平台测试
6.6.6 碰撞测试
6.6.7 卷轴运动测试
6.7 性能测试
6.8 本章小结
第七章 总结与展望
致 谢
参考文献
(如您需要查看本篇毕业设计全文,请您联系客服索取)