APP下载

基于IOS平台的拼图游戏开发

2017-02-06胡艳华崔亚楠

软件 2016年6期

胡艳华+崔亚楠

摘要:基于iOS平台的游戏日益受到青睐,本文开发了一款iOS平台下的手机游戏软件——益智拼图。该游戏采用跨平台引擎-cocos2d-x以及c++语言进行开发的,主要实现了拼图游戏的切割图片、滑动效果、游戏逻辑、物理效果等基本功能,且支持从手机照相或图片库获取图片进行切割,摇一摇更换图片以及音效设置等特色功能。最后,通过对游戏进行安装、调试,通过了性能测试,成功发布了游戏。

关键词:拼图游戏;iOS平台;Cocos2d-x引擎

引言

随着智能操作系统的日趋成熟和人们精神生活的不断丰富,移动设备游戏日益受到欢迎。由于IOS系统的优越性及操作的人性化,基于此平台的游戏软件更是受到追捧。拼图游戏即是其中一款经典的游戏,有着很大的用户群。在iOS平台下,用户可以从App Store下载游戏并安装后可直接使用,方便快捷。不仅可以用来消磨时间,更可以起到益智、锻炼思维的作用。因此,基于iOS平台的拼图游戏有着巨大的市场潜力。

优秀的游戏软件设计,要求能做到一次代码编写,能在多系统运行。本文参考了一些基于iOS平台的软件开发,最终确定采用跨平台引擎-cocos2d-x,开发了一款基于IOS平台的手机游戏软件—益智拼图。

1IoS系统和COCOS2d-x引擎简介

1.1IOS系统简介

iOS是由苹果公司开发的手持设备操作系统。最初是为iPhone设计,后来陆续用到iPod touch、iPad以及Apple TV等苹果产品上。iOS与苹果的Mac OSx操作系统一样,它也是以Darwin为基础的,因此同样属于类Unix的商业操作系统。

iOS的系统结构分为以下四个层次:核心操作系统(the Core OS layer),核心服务层(the CoreServices layer),媒体层(the Media layer),Cocoa触摸框架层(the Cocoa Touch layer)。

1.2cocos2d-x游戏引擎简介

Cocos2d-x是一个开源的移动2D游戏框架,MIT许可证下发布的。它使用c++开发,同时支持多平台的2D手机游戏引擎,是cocos2d-iPhone项目的版本。cocos2d-x发展的重点是围绕cocos2d跨平台。cocos2d-x项目可以很容易地建立和运行在iOS,Android,三星Bada,黑莓操作系统平台上。cocos2d-x还支持Windows和Linux系统,因此,我们可以调试的源代码很容易写在桌面操作系统上进行编辑。

2游戏策划

在开发游戏前,必须有一个完整的游戏策划,即对开发的游戏做一个简单的描述。它包含游戏的开发背景,游戏的功能,游戏的风格,以及对游戏市场的调查。

2.1游戏策划

通过对市场上一些拼图游戏的试玩后,对拼图游戏的功能有一定的了解。拼图游戏的主要表现形式是将一张完整的图片,切割成若干的小图片,然后将小图片的顺序打乱。玩家可以拖动小图片,若寻找的位置正确,小图片的位置就会固定不能再拖动,否则小图片就会自动掉落到界面底部。用户在游戏的过程中可以自己选择游戏的图片。在游戏开始界面上设置开始游戏的按钮,游戏的主场景固定,但游戏的图片可以切换。

2.2游戏功能策划

(1)无限关卡:游戏中每完成一张拼图就会进入到一下关卡,难度渐渐增加。本游戏设置的关卡的公式(1):

其中n为整数。如第一关切割成9张小图片,第二关切割成16张小图片,第三关切割成25张小图片,使得游戏设置的关卡难度依次加大。

(2)切割、随机掉落图片:用户在进人主游戏后,先通过将图片切割成多张小图片;然后这些小图片根据物理效果会随机掉落到原图的下方,用户可以滑动图片和选择图片进行拼图操作。当用户拖动下方小图片到游戏区域,若此图片位置正确,小图片固定不能移动,否则,小图片就会自动掉落到底部。

(3)更换图片:本游戏支持摄像头或图片库更换图片,用户可以通过打开手机的摄像头或者图片库来获取图片进行切割成小图片进行游戏。且用户还可以摇一摇手机更换图片,是本设计游戏的特色之一。

另外,游戏带音效功能,游戏中有背景音乐、摇一摇和过关时的音效,且游戏中设计有计时功能。

3游戏详细设计与实现

3.1切割图片的设计与实现

该功能通过使用cocos2d-x中CCSprite类库中create(const char*pszFileName,const CCRect&rect)函数,它的功能是在一张图片中从某一坐标点(x,y)取一张图片,(height,width)表示被取图片的高度和宽度,此图片的高度和宽度是原大图的高度和宽度整除切割图片数的平方根得到,这样就实现了把图片切割成16张、25张、36张等。切割效果如图1所示:(因文章篇幅受限,具体代码实现不再给出)

3.2滑动效果的设计与实现

在处理滑动事件时,分三个函数实现:(1)ccTouchesBegan()函数功能表示滑动开始。(2)ccTouchesMoved()函数功能是开始拖动图片,函数中需设定哪些图片可以滑动以及设定图片滑动的范围。(3)ccTouchesEnded()函数表示滑动结束,此函数实现在滑动结束之后将执行哪些操作,如在拼图游戏中,切割后图片的滑动及将目标图片移动到指定的位置。滑动效果如图2所示。

3.3游戏逻辑的设计与实现

游戏原图被分割后,用一个spriteArray放切割后的图片信息,并对图片设置Tag,通过移动小图片与其原来的位置对比,如果位置差值在一定范围内并且Tag相等,图片就会吸附固定。实现效果如图3所示:

3.4物理效果的设计与实现

切割后的图片从屏幕中间模拟物理效果掉落,当滑动的图片掉落时也会有物理碰撞重力等效果,使用物理引擎Box2d,模拟一个重力的世界,重力向下,把屏幕的四面设置成墙壁;定义出刚体后,生成刚体,把小图片作为皮肤依附在刚体上,而刚体因为受到重力的作用会自然掉落,皮肤会跟随着其依附的刚体而移动。实现效果如图4所示。

另外,本游戏中还实现了摇一摇设备更换游戏图片,打开手机摄像头或者图片库获取图片作为游戏图片,设置无限关卡,游戏计时和音效等一些功能。

4游戏部署与测试

4.1游戏部署

本游戏开发为一个IOS项目,打开项目的文件夹,双击“拼图游戏xcodeproj”文件就能在.xcode里打开项目,再点击运行即可。

4.2游戏测试

游戏测试是游戏开发中很重要的一部分。本文主要依据软件工程中的软件测试方法,并结合一般游戏测试的方法进行测试。本文制定了一个完整的游戏测试方案,并建立相应的测试文档,其文档有利于修正游戏的bug,同时有利于改进游戏。

4.3BugList文档

在游戏测试时,对于找到的bug需要记录,并建立一个buglist的文档保存,这样可以避免漏掉游戏bug,以及防止重复测试相同的bug。bugList文档如表1所示:

最后,经过测试,没有bug后,本拼图游戏成功发布到App Store。

5结束语

本文设计的拼图游戏有分割图片,滑动图片,物理效果和摇一摇更换图片等一些功能。通过游戏策划与开发方案的编写,对游戏开发的具体流程有了更深的了解;对于开发的每个部分都使用文档记录,这样既规范了整个开发过程,也使游戏的开发有据可查,并且还可以提高游戏开发的效率,缩短开发周期。另外,游戏中的画面美感不足,并没有经过专业的处理,是下一步游戏改进的地方。