2024年4月13日发(作者:)

龙源期刊网

基于Cocos2d—android的手机游戏开发

作者:彭守镇 詹发荣

来源:《电脑知识与技术》2014年第20期

摘要:该文介绍了一款2D手机游戏软件的开发过程,该软件使用Cocos2d-Android-1作为

引擎,设计了植物精灵、僵尸精灵、子弹精灵等精灵类及背景层、精灵层。游戏软件的业务逻

辑并不复杂,只设计了第一关卡。游戏的碰撞检测根据不同要求采用不同的逻辑思想,各精灵

也产生在不同的图层上,从而增加了游戏的效果。整个游戏匹配了相应的音效。

关键词:Cocos2d;导演类;精灵类

中图分类号:TP37 文献标识码:A 文章编号:1009-3044(2014)20-4827-02

The Development of Mobile Phone Game Based on Cocos2d-android

PENG Shou-zhen 1 , ZHAN Fa-rong 2

(1Zhaoqing Science and Technology Polytechnic, Guangdong Zhaoqing; 2 Zhaoqing

Fenghua Lithium Battery Co Ltd Guangdong Zhaoqing)

Abstract: This paper introduces the development process of a 2D mobile phone game

software, the software uses the Cocos2d-Android-1 as the engine, designed the elves, elves,

plant zombie bullet fairy elf and elves background layer, layer. The business logic of the game

software is not complicated, just design the first checkpoint. Collision detection game using logic

according to different requirements, the elves also produced in different layers, thereby increasing

the effect of the game. The game matched the corresponding sound.

Key words: Cocos2d; director; the wizard class

目前,市场上手机游戏软件琳琅满目,开发工具和方法多种多样,这类的游戏软件大多数

是基于C++和java的,有的不用引擎,但不用引擎做游戏开发周期长,工作复杂。使用引擎

开发手机游戏能够节省大量的开发工作和时间,提高开发效率。当前互联网上游戏引擎为数较

多,有免费引擎和商业引擎之分,这其中又有2D和3D之分。该文介绍的是使用Cocos2d作

为引擎、基于android系统的一款2D手机游戏软件。关于Cocos2d引擎的版本较多,互联网上

使用该类引擎的版本大多数是Cocos2d-X,而Cocos2d-android-1版本使用较少,相关参考资料

也较少,该文介绍的游戏软件正是基于Cocos2d-android-1版本开发的。本人在开发过程中借

鉴了互联网上“植物大战僵尸”这款游戏的相关图片资源,不作为商业用途。

1 引擎介绍及开发环境

龙源期刊网

1) Cocos2d-android-1版本是Cocos2d引擎的一个子分支,它在Cocos2d家庭中的位置如

图1所示:

2) 在Eclipse中引入引擎。首先在网站http:///p/cocos2d-android-

1/downloads/list下载引擎包:其次将该引擎包导入到eclipse中lib目录中,

导入方法是在新建的游戏项目中将该包拷贝到lib文件夹下即可[1]。

3) 开发工具的使用。使用Java语言、Eclipse作为开发平台,加上其它相关工具,如:

JDK、Android SDK、ADT。所有工具可从如下网址下载:http:///

2 游戏开发的主要元素

几乎任何一款游戏软件都会用到以下几种元素:导演、场景、布景层和精灵,而这些元素

中起到最关键作用的就是导演。导演在游戏中起到组织者和领导者的作用,而导演由导演类

CCDirector实现。导演类可以制定游戏的运行规则,从而让游戏内的场景、布景类和精灵类有

序地进行[2]。在游戏引擎中,这些元素分别由类来实现,场景对应场景类CCScene,布景对应

布景层CCLayer,精灵对应精灵类CCSprite。除了这些基本元素之外,图片资源、游戏算法、

音效等也构成了游戏软件的重要元素,尤其是图片资源,它决定了游戏软件的容量及运行效

率,这需要专业的UI设计人员来处理。游戏算法是游戏软件的灵魂,它决定了游戏软件的受

欢迎程序和生命,而算法的体现在游戏的关卡的设计上,该文游戏软件还处于开发早期,只设

计出一道关卡,有待于后期的努力。

在本文的游戏软件中设计了三类精灵和二类布景层:植物精灵(PlantSprite)、僵尸精灵

(GhostSprite)、子弹精灵(BulletSprite)、背景层(BackgroundLayer)和负责逻辑业务的精

灵层(SpriteLayer)。最简单的布景层就是背景层,它在第一关卡中只负责绘制静态的背景,

不处理任何业务逻辑。精灵层是第一关卡的重要的业务逻辑层,负责各精灵的添加及业务处

理。

3 业务逻辑的实现

1) 植物精灵(PlantSprite)类的实现。植物精灵类负责对象的构建及基本的动作实现,

植物精灵只有一种动作,就是把一系列的动作图片按帧播放,由CCAnimation类的对象负责处

理,实现连续不断地播放,连续播放由CCRepeatForever对象处理。

2) 僵尸精灵(GhostSprite)类的实现。僵尸精灵由几个元素构成,其中包括速度、生命

长度、行走及消亡业务等。这些元素在关卡的属性设置方面是重要的,所以应把它们放置在全

局环境里,由公共业务逻辑来处理。

3) 子弹精灵(BulletSprite)类的实现。子弹精灵类同僵尸精灵类似,也有括速度、生命

长度、射击及消亡业务等成份。它的这些元素同样要放置在全局环境里,由公共业务逻辑来处

理。

龙源期刊网

4) 精灵层(SpriteLayer)类的实现。精灵层负责大部分业务逻辑,首先它要实现各种精

灵的创建,其次它要处理碰撞业务。碰撞的实现算法可以把它作为公共业务来处理,在后续的

关卡开发时期可以重用。在软件的实现过程中,碰撞的算法分为两种情况来考虑,一是子弹与

僵尸的碰撞,这种碰撞按照矩形中间部位重叠判断原理来实现。该判断方法把两类精灵当前占

用位置看作矩形对待,两矩形中央部分如有重叠,则算作碰撞,采用这种碰撞算法恰好实现僵

尸中部“中弹”的效果。另一种碰撞是植物精灵与僵尸的碰撞,这种碰撞要求做到“接触”碰撞,

即只要两矩形有交叉部分算作碰撞。另外,精灵层还要负责游戏胜负业务逻辑的处理、音效播

放及关卡的转接。

5) 精灵层次效果的实现。在游戏实现过程中,植物精灵的位置是由玩家任意摆放的,只

要在ccTouchesBegan方法中重设植物精灵的位置便可实现这一功能。精灵的层次效果对于碰

撞的验证是十分重要的,处于不同层次的精灵,如不同层次的子弹精灵与僵尸精灵的碰撞,不

在同一层次上是不可以相碰撞。子弹精灵只有处于不同层次才能做到子弹“穿行”的效果。如图

2所示:

6) 关卡的设置。游戏第一关卡的情景设置相对简单,游戏玩家通过触摸屏幕决定植物精

灵的位置。子弹通过游戏玩家的触摸事件产生,子弹产生的位置随着植物精灵位置的变化而变

化。僵尸精灵的初始数量由系统设定,之后每隔一秒时间由系统自动产生,系统自动产生的数

量是随机的,由僵尸精灵的运行速度决定。僵尸的运行速度每一列位置是不一样的,同一列位

置的僵尸速度相同,不同列位置的僵尸速度呈线性递增变化,最前列速度最快。植物精灵在游

戏过程中是不能与僵尸碰撞,一旦碰撞,第一关游戏以失败终止,系统弹出关卡选择的界面。

系统设定消灭僵尸数量为50个,游戏过程统计消灭数量和剩余数量,以白色字体显示在屏幕

上方。在完成50个数量的任务后,游戏胜利终止,弹出关卡选择的界面。子弹的发射、关卡

的选择及胜利、失败都产生相应的声响效果。

4 总结与展望

本文的游戏软件只设计了第一关卡,情景相对较简单。在整个开发过程中,遇到的最大困

难是没有专业的UI设计,图片没有经过专业处理,导致软件容量相对较大。同时后续关卡的

设计和创新思想决定了整个软件的成败,尤其是需要大量的专业图片支撑,所以希望有专业的

UI设计师加入,并希望能够得到有志人士提出精彩的游戏思想。

参考文献:

[1] 沈大海.Cocos2d-x手机游戏开发与项目实战详解[M].北京:清华大学出版社,2014.

[2] 满硕泉.Cocos2d-x权威指南完整版[M].北京:机械工业出版社,2013.