当前位置:信息技术教师联盟>>软件分享[信息技术]>>正文
Android平台Flash游戏设计
编辑:滁小周敏 发布时间:2016-11-21 【 】【打印】 阅读次数:162
摘 要:实现Flash游戏的手机与PC的相互沟通和跨平台开发是近年来一种新的游戏发展方向。文中阐述了基于Android的Flash游戏设计,并以传统的飞机大战为实例,采用Flash CS6做游戏图片资源和设置面板,利用面向对象编程语言Action Script3.0编写代码,使用Flash Builder构建框架和发布游戏的安装包。
  关键词:Android平台;Flash游戏;躲避;跨平台应用;Flash Builder
  中图分类号:TP311.52 文献标识码:A 文章编号:2095-1302(2016)09-0104-02
  0 引 言
  Flash是富媒体开发技术,最初用来开发交互式网站动画组件。Flash游戏基于矢量图,具有体积小、传播快、画面美观等特点,深受Web网游玩家欢迎。
  Flash游戏在智能手机终端的跨平台发展中将网页版Flash游戏的特点融入移动平台上,以其操作简单、文件体积小、不易卡顿等特点成为移动平台游戏的中坚力量。
  Flash以流式控制和矢量技术为核心。Flash文档的扩展名为.fla(FLA),新建或打开一个Flash文档,呈现Flash游戏开发的四个主要部分:
  (1)舞台:在回放过程中显示图形、视频、按钮等内容的位置。
  (2)时间轴:用来通知Flash显示图形和其它项目元素的时间,也可以使用时间轴指定舞台上各图形的分层顺序。
  (3)库面板:显示Flash文档中媒体元素列表的位置。
  (4)ActionScript代码:用来向文档中的媒体元素添加交互式内容,向应用程序添加逻辑,根据用户的操作采取不同的工作方式。
  要在Flash中构建应用程序,可以使用Flash绘图工具创建图形,将其它媒体元素导入Flash文档,定义如何以及何时使用各元素来实现应用程序的功能。
  所使用的开发工具Flash Builder是一个由Eclipse平台扩展而成的集成开发环境(IDE),用来开发互联网应用程序(RIA)和跨平台应用程序,尤其是Adobe Flash平台的应用。
  1 游戏分析与设计
  本文以传统的飞机大战为实例,游戏主要模块类的功能如下所示:
  (1)Config用来配置游戏各种参数;
  (2)Control用来控制游戏流程执行;
  (3)NumPanel是计时数字显示界面;
  (4)Welcome是欢迎界面;
  (5)Fail是失败提示界面;
  (6)GameScene是游戏主界面,游戏操作主要靠这个类完成。
  (7)Tools是工具类,提供各种快捷功能方法。
  1.1 游戏规则设计
  在游戏过程中,有个数字界面以秒为单位记录游戏时间。游戏失败后会重新开始计时。游戏时间越长,飞机的数量和速度就会更多更快。设置的游戏参数主要是飞机的速度、数量以及速度增加的情况,根据个人情况而定。
  本游戏是躲避类游戏,点击屏幕进入游戏界面,游戏开始运行并计时。如果飞机碰撞则显示游戏失败,返回开始界面,再次点击游戏可继续进行。可以进入设置界面打开设置项,选择或改变参数。设置返回后游戏继续进行。
  1.2 游戏界面设计
  1.2.1 游戏失败提示界面
  Fail游戏失败提示界面会频繁出现,所以做成单例来精简游戏性能。此界面实现功能的流程:第一次调用时初始化该界面,一个半透明背景以及一个失败提示文字图片。当调用show方法时,会控制背景和文字渐现出来,同时返回自己,让调用方将自己添加到合适的容器内。渐现完成后便添加鼠标监听,单击屏幕后会继续渐隐直到消失,抛出游戏开始事件,游戏操作界面监听到开始事件后会重新开始游戏。
  1.2.2 游戏欢迎界面
  Welcome欢迎界面只出现一次,不必做成单例。这个类的功能是在游戏开始时,渐现出现游戏名称,并作鼠标事件的监听。此时如果点击屏幕,会渐隐欢迎界面。渐隐结束后,将自己从父级容器中移除,同时抛出游戏开始事件。
  2 游戏开发与实现
  2.1 游戏工程创建
  先用FlashBuilder创建一个游戏项目。FlashBuilder不仅支持Flash本身,还能将Flash转换为手机游戏安装包。游戏项目创建如图1所示。
  打开创建项目工程窗口,可在桌面上创建flight飞机大战工程。
  2.2 游戏工程的设置
  游戏工程创建完成后,还需要把素材添加到工程中。在游戏工程文件夹中可创建如下三个文件夹。fla文件夹放置游戏素材的flash源文件,lib文件夹放置导出的swc素材,p12文件夹放置打包安卓所需要的打包证书。进入src文件夹创建一个assets文件夹,将其他资源图片命名好后放到assets目录下。回到FlashBuilder,打开工程属性面板,将lib目录添加到项目中,这样工程就能引用lib下的swc文件。至此,游戏的工程设置和创建全部完成。
  2.3 游戏的主类
  Main类是游戏的主类,具体如图2所示,同时也是游戏的执行入口。首先需要做舞台初始化监听,当舞台创建完成后才能继续进行下一步动作。
  图2 游戏主类
  2.4 游戏的流程控制类
  Control是游戏的流程控制类,是一个单例,具体如图3所示。在游戏过程中,通过这个类发出一些命令,做出相应的改变。这个类可在游戏开始时初始化资源类的配置,然后提供一个游戏开始事件以及抛出事件的功能,最后启动欢迎界面。因为欢迎界面只出现一次,所以直接与游戏操作界面叠加,用过之后直接销毁即可。
  2.5 游戏操作编程实现
  2.5.1 检测飞机是否发生碰撞
  检测碰撞时,需要将玩家操作的飞机和每一个敌机做碰撞检测。当检测到一个碰撞后,停止游戏所有的监听,这样就不能继续操作玩家飞机,所有其它的飞机也会停止,同时添加游戏失败提示界面。
  碰撞检测算法主要有基于距离的碰撞检测和基于显示对象的碰撞检测。Flash影片剪辑里有一个内置的方法hitTest。现在它已经被更合理地分成两种独立的方法,hitTestObject方法用于测试一个显示对象(精灵、影片剪辑等)是否碰撞到另外一个,hitTestPoint方法用来检测一个指定的点是否碰撞到一个显示对象。基于距离的碰撞检测的基本思路是:两个对象各做一个外接包围圆,两个圆心的距离如果小于两圆半径之和就可以判定这两个圆发生碰撞。
  2.5.2 判断飞机要不要加速
  当前时间减去上一次速度发生变化的时间,如果这个差值大于速度变化的间隔时间,那么就表示需要加速。然后为当前速度加上速度增加量,如果速度超出上限,可以按最大值处理。
  //判断添加飞机的间隔时间是否发生改变
  3 结 语
  经过对系统进行测试和运行,得知游戏系统性能具有界面友好、操作方便、功能较完善等优点。游戏过程中的消息响应处理很快,且系统整体运行稳定。由于开发时间等方面的原因,该系统还可以在游戏音效、元素类型、游戏界面美工等方面予以完善。
打印】【收藏】【关闭】 【返回顶部