基于Starling的捕鱼游戏的设计与开发
2014-12-13俞琳琳
摘 要:在移动产业高速发展的今天,手机游戏已经逐渐成为人们生活中必不可少的一部分。而智能手机的出现,更是给手机游戏提供了高速发展的平台和契机。本文主要介绍了一款基于Starling框架的安卓平台的捕鱼游戏的开发过程。首先,介绍了游戏的策划与需求分析,其次,重点介绍了游戏的主要模块的设计与实现,最后,介绍了游戏的发布及配置方法。
关键词:Android;Adobe AIR;ActionScript3.0;Starling
中图分类号:TP311.52 文献标识码:A
1 引言(Introduction)
手机游戏作为人们重要的娱乐方式之一,近年来,伴随着移动网络和移动终端性能的不断提高与完善,得到非常迅猛的发展,俨然成为了移动行业的一个“金矿”[1]。越来越多的厂商渗透入手机游戏领域,手机游戏的营销额以及使用人数也逐年递增。2010年手机游戏市场规模已经达到25亿元。据调查,网民中,玩手机游戏的用户比例达94.7%,从而反映出手机游戏之火暴。
2 系统实现技术(System realizing technology)
Starling是在Stage3D APIs基础上开发的一种ActionScript3.0 2D框架(可用于Flash Player 11和Adobe AIR 3的桌面)[2]。Starling是为游戏开发设计的,但是它也可以被应用于其他程序。Starling的工作方式也很简单。由于Starling是基于Stage3D的API开发的,所以它的驱动关系位于Stage3D之上,而Stage3D有能力去控制OpenGL、DirectX这些电脑显卡驱动或OpenGL ES2这些手机显卡驱动,最终由这些显卡驱动程序去驱动GPU工作[3]。Starling驱动GPU的方式如图1所示。
图1 驱动关系图
Fig.1 Driving diagram
通过Starling的使用,可以大大简化动画的创建过程,只要提供MovieClip每一帧的纹理素材给Starling MovieClip即可。Starling可以减少开发难度并可以很快地写出使用GPU加速的应用程序而不必接触那些复杂的底层Stage3D API。这使其成为采用Flash AS开发游戏所必不可少的部分。
3 系统功能设计(System function design)
该游戏实现捕鱼类游戏的所有基本功能,同时,为了满足玩家的个人需求,在游戏中加入了重力感应的船只移动功能,从而使游戏玩法更新颖、更加吸引玩家[4]。良好的用户界面,能够在视觉上吸引玩家。主界面主要包括背景图片、船只、人物、武器、暂停按钮、商店按钮、金钱和捕鱼数显示、鱼类显示。主要功能需求设计用例图如图2所示。
图2 游戏功能用例图
Fig.2 Use case diagram of game features
4 详细设计与实现(Detailed design and
implementation)
Main作为Starling的文档类,用于启动Starling。Game作为Starling的入口类,负责创建游戏的主界面。各个类之间通过按钮点击操作控制进行相互之间的调度,从而实现游戏整体功能。
4.1 Starling框架使用
Starling框架使用很简单,Starling充分考虑到其使用时的简单性,我们只需要在工程中添加Starling的类库,即可调用其相关部件。Starling类库详细添加方法如下:单击工程的FLA文件中的脚本设置。打开脚本设置后,只需在库路径中将Starling的类库Starling.swc添加即可,如图3所示。
图3 脚本设置
Fig.3 Script settings
至此,Starling的类库已经包含到工程中,在下面的开发中就可以在类中调用Starling框架提供的各种控件。启动Starling的具体代码如下:
public class Main extends MovieClip {
private var mStarling:Starling;
public function Main() {
stage.align = StageAlign.TOP_LEFT;
//画面无缩放
stage.scaleMode=StageScaleMode.NO_BORDER;
//设置程序入口类,创建Starling
mStarling=new Starling(Game,stage);
//设置画面渲染类型
mStarling.antiAliasing=1;
//启动Starling
mStarling.start();
}
}
启动Starling后,项目的渲染将由Starling来控制,这样会大大减少项目对机器性能的需求,提高工作效率。
4.2 资源加载
该游戏使用TexturePacker将图片资源合并成一张大图片,图片的加载需要编写一个专门的资源加载类来控制。首先需要将TexturePacker生成的数据文件导入到工程中。在主文件中打开目标设置,然后将数据文件添加到包括的文件列表中,如图4所示。
图4 添加数据文件
Fig.4 Add data file
图片数据文件添加到项目中就可以编写加载资源的类了。使用URLRequest获取XML文件地址,再通过URLLoader加载XML的内容,再通过大图片以及数据的结合定位到对应的小图片。
5 结论(Conclusion)
通过游戏的界面测试中相应的功能测试,游戏设计完成度良好,达到了预期需求。基本做到美观、友好、便于操作,良好实现游戏的可玩性,能够很好的适应玩家的入手,但是在整个设计中仍存在着交互模式过少、缺乏明显的亮点等不足,会在以后的研究中改进。
参考文献(References)
[1] 周颖,沈艳秋.手机发展史[J].科技信息,2010,(33):599-600.
[2] 王友钊,等.ANDROID系统开发与实践[M].北京:清华大学出
版社,2013.
[3] 斯白[加].ActionScript3.0游戏设计基础(第二版)[M].北京:电
子工业出版社,2013.
[4] 布罗西耶[美].Android移动应用开发:基于Adobe AIR[M].
北京:清华大学出版社,2012.
作者简介:
俞琳琳(1980-),女,本科,助教.研究领域:软件工程,数据
挖掘.endprint
; ; ; ; ; stage.align = StageAlign.TOP_LEFT;
; ; ; ; ; ; //画面无缩放
; ; ; ; stage.scaleMode=StageScaleMode.NO_BORDER;
; ; ; ; ; ; //设置程序入口类,创建Starling
; ; ; mStarling=new Starling(Game,stage);
; //设置画面渲染类型
; ; mStarling.antiAliasing=1;
; ; ; ; ; ; ; //启动Starling
; ; ; ; mStarling.start();
;}
}
启动Starling后,项目的渲染将由Starling来控制,这样会大大减少项目对机器性能的需求,提高工作效率。
4.2 ; ; 资源加载
该游戏使用TexturePacker将图片资源合并成一张大图片,图片的加载需要编写一个专门的资源加载类来控制。首先需要将TexturePacker生成的数据文件导入到工程中。在主文件中打开目标设置,然后将数据文件添加到包括的文件列表中,如图4所示。
;图4 添加数据文件
; ; ; ; ; ; ; ; ; ; ; ; ; Fig.4 Add data file
图片数据文件添加到项目中就可以编写加载资源的类了。使用URLRequest获取XML文件地址,再通过URLLoader加载XML的内容,再通过大图片以及数据的结合定位到对应的小图片。
5 ; ; 结论(Conclusion)
通过游戏的界面测试中相应的功能测试,游戏设计完成度良好,达到了预期需求。基本做到美观、友好、便于操作,良好实现游戏的可玩性,能够很好的适应玩家的入手,但是在整个设计中仍存在着交互模式过少、缺乏明显的亮点等不足,会在以后的研究中改进。
参考文献(References)
[1] 周颖,沈艳秋.手机发展史[J].科技信息,2010,(33):599-600.
[2] 王友钊,等.ANDROID系统开发与实践[M].北京:清华大学出
; ; ; ; ; 版社,2013.
[3] 斯白[加].ActionScript3.0游戏设计基础(第二版)[M].北京:电
; ; ; ; ; 子工业出版社,2013.
[4] 布罗西耶[美].Android移动应用开发:基于Adobe AIR[M].
; ; ; ; ; 北京:清华大学出版社,2012.
作者简介:
俞琳琳(1980-),女,本科,助教.研究领域:软件工程,数据
; ; ; ; ; 挖掘.endprint
; ; ; ; ; stage.align = StageAlign.TOP_LEFT;
; ; ; ; ; ; //画面无缩放
; ; ; ; stage.scaleMode=StageScaleMode.NO_BORDER;
; ; ; ; ; ; //设置程序入口类,创建Starling
; ; ; mStarling=new Starling(Game,stage);
; //设置画面渲染类型
; ; mStarling.antiAliasing=1;
; ; ; ; ; ; ; //启动Starling
; ; ; ; mStarling.start();
;}
}
启动Starling后,项目的渲染将由Starling来控制,这样会大大减少项目对机器性能的需求,提高工作效率。
4.2 ; ; 资源加载
该游戏使用TexturePacker将图片资源合并成一张大图片,图片的加载需要编写一个专门的资源加载类来控制。首先需要将TexturePacker生成的数据文件导入到工程中。在主文件中打开目标设置,然后将数据文件添加到包括的文件列表中,如图4所示。
;图4 添加数据文件
; ; ; ; ; ; ; ; ; ; ; ; ; Fig.4 Add data file
图片数据文件添加到项目中就可以编写加载资源的类了。使用URLRequest获取XML文件地址,再通过URLLoader加载XML的内容,再通过大图片以及数据的结合定位到对应的小图片。
5 ; ; 结论(Conclusion)
通过游戏的界面测试中相应的功能测试,游戏设计完成度良好,达到了预期需求。基本做到美观、友好、便于操作,良好实现游戏的可玩性,能够很好的适应玩家的入手,但是在整个设计中仍存在着交互模式过少、缺乏明显的亮点等不足,会在以后的研究中改进。
参考文献(References)
[1] 周颖,沈艳秋.手机发展史[J].科技信息,2010,(33):599-600.
[2] 王友钊,等.ANDROID系统开发与实践[M].北京:清华大学出
; ; ; ; ; 版社,2013.
[3] 斯白[加].ActionScript3.0游戏设计基础(第二版)[M].北京:电
; ; ; ; ; 子工业出版社,2013.
[4] 布罗西耶[美].Android移动应用开发:基于Adobe AIR[M].
; ; ; ; ; 北京:清华大学出版社,2012.
作者简介:
俞琳琳(1980-),女,本科,助教.研究领域:软件工程,数据
; ; ; ; ; 挖掘.endprint
; ; ; ; ; stage.align = StageAlign.TOP_LEFT;
; ; ; ; ; ; //画面无缩放
; ; ; ; stage.scaleMode=StageScaleMode.NO_BORDER;
; ; ; ; ; ; //设置程序入口类,创建Starling
; ; ; mStarling=new Starling(Game,stage);
; //设置画面渲染类型
; ; mStarling.antiAliasing=1;
; ; ; ; ; ; ; //启动Starling
; ; ; ; mStarling.start();
;}
}
启动Starling后,项目的渲染将由Starling来控制,这样会大大减少项目对机器性能的需求,提高工作效率。
4.2 ; ; 资源加载
该游戏使用TexturePacker将图片资源合并成一张大图片,图片的加载需要编写一个专门的资源加载类来控制。首先需要将TexturePacker生成的数据文件导入到工程中。在主文件中打开目标设置,然后将数据文件添加到包括的文件列表中,如图4所示。
;图4 添加数据文件
; ; ; ; ; ; ; ; ; ; ; ; ; Fig.4 Add data file
图片数据文件添加到项目中就可以编写加载资源的类了。使用URLRequest获取XML文件地址,再通过URLLoader加载XML的内容,再通过大图片以及数据的结合定位到对应的小图片。
5 ; ; 结论(Conclusion)
通过游戏的界面测试中相应的功能测试,游戏设计完成度良好,达到了预期需求。基本做到美观、友好、便于操作,良好实现游戏的可玩性,能够很好的适应玩家的入手,但是在整个设计中仍存在着交互模式过少、缺乏明显的亮点等不足,会在以后的研究中改进。
参考文献(References)
[1] 周颖,沈艳秋.手机发展史[J].科技信息,2010,(33):599-600.
[2] 王友钊,等.ANDROID系统开发与实践[M].北京:清华大学出
; ; ; ; ; 版社,2013.
[3] 斯白[加].ActionScript3.0游戏设计基础(第二版)[M].北京:电
; ; ; ; ; 子工业出版社,2013.
[4] 布罗西耶[美].Android移动应用开发:基于Adobe AIR[M].
; ; ; ; ; 北京:清华大学出版社,2012.
作者简介:
俞琳琳(1980-),女,本科,助教.研究领域:软件工程,数据
; ; ; ; ; 挖掘.endprint