基于Cocos2d-x移动平台跑酷类游戏的设计与实现

2017-04-25 09:41:39徐明鹤辽宁锦州渤海大学信息科学与技术学院
数码世界 2017年4期
关键词:忍者关卡控件

徐明鹤 辽宁锦州渤海大学信息科学与技术学院

基于Cocos2d-x移动平台跑酷类游戏的设计与实现

徐明鹤 辽宁锦州渤海大学信息科学与技术学院

随着社会的飞速进步,信息技术的飞速发展,中国的手游市场也逐渐以突飞猛进的速度在发展。跑酷游戏是基于跑酷这项极限运动的定义上发展起来的,喵星忍者作为跑酷类手机游戏中的一个典型的代表,发展的背景就是这个时期。本文主要是通过软件工程的思想详细介绍了游戏的设计场景,同时针对游戏的主场景着重地进行了阐述。在游戏的开发中,应用了Cocos2d-X引擎技术,此外可扩展性提高方面,运用了单例模式,实现游戏主场景中,引入了碰撞检测以及物理模拟,这些技术的增加都使得游戏的画面效果更逼真。

手游 引擎技术 Cocos2d-X

作为跑酷类手机游戏中的一种《喵星忍者》吸引无数的玩家。跑酷的另一个称呼是Parkour。Parkour在80年代的法国出现的,“Parkour”这一个术语是来源于“parcourir”这是个法国单词,意思是指到处跑,基于跑酷运动,于是开发者就有了跑酷游戏的设计灵感,虽然跑酷游戏并没有受到很多的平台的重视,然而在引入了移动端技术后得到了很多人的喜爱。和其他的跑酷类游戏比较,《喵星忍者》用到了Cocos2d-X技术,另外该游戏的模式一共有三种组成,为教学模式、无尽模式、闯关模式等,而所谓的无尽模式中的游戏场景是不断发生变化的,同时还可以让玩家体验到游戏所带来的刺激感以及神秘感。游戏的另一个吸引玩家的方式是通过购买道具以及升级武器实现的。

1 Cocos2d-X引擎研发技术

1.1 框架结构

Cocos2d-X引擎技术细分了游戏中的场景,该项游戏的画面主要包括了多个场景。在导演的控制下,从而实现了切换多个场景。不同的场景对应着不同层次构成,而且每一个层次里面也可以新增其他的精灵对象。从而通过该引擎形成了游戏的整体画面效果。在引擎技术中需要用到几个概念,就是层次、场景、精灵、以及导演等。场景主要是当游戏启动的时候,所呈现出来的画面。每一个应用中都有着很多个场景,然而激活状态只可以是一个,可以从另外一个方面来讲,就是每一次就显示一个界面。而且每个场景的组成都包括了一个或多个的CCNode,在场景中新增CCNode,作为全部节点中的基类,可以给场景其他的行为以及外观。CCNode的子类,比如CCLayer和CCSprite,导演可以把这个子类看成是游戏里面的控制器,切换不同场景。作为一个单例,场景的改变可以通当前场景的替换完成,也可以将新的场景替换到场景栈里面。在场景栈中放置一个新的场景时候,当前的场景就会被CCDirector终止,同时被存储在内存中,接着将新场景显示出来。栈顶场景完成了出栈的操作后,前面的那个场景就可以变成最后的状态最后显示出来。

1.2 控件介绍

UI控件的原称是User Interface,该控件用于用户进行界面交互,所包含的组件有标签、滚动栏、按钮以及进度条等。《喵星忍者》的游戏中,因为出现了许多的选项类场景以及展示类场景,所以在游戏中控件充当着很大的作用,游戏控制中包括了很多按钮之类的控件。

全部的按钮基类是CCMenultem类。该类的功能为:给出基本按钮的3种状态,分别是选中、正常以及无效等。提供回调函数机制给按钮对象。当用户点击按钮对象的时候,就会触发一个动作,这个时候游戏中的逻辑调用同时一个函数来实现,该函数称为是回调函数。

2 功能需求

2.1 游戏介绍

作为跑酷类手机游戏中的一种《喵星忍者》的教学模式所面对的对象是新玩家,在具体的指导下,玩家可以在比较短的时间掌握游戏的操作。而其中的闯关模式具体由3个章节组成,每个章节分为8个关卡,而且每个章节所对应的最后一个关卡是Boss关卡,喵星忍者在最后可以和终极Boss来一场终极pk。当喵星忍者顺利闯关成功后,就会有权限进入到下一个关卡,玩家能够进行下一个关卡的选择。无尽模式的意思是指游戏只有在喵星忍者灭亡后,游戏才终止,然后后期再将喵星忍者跑动的终极距离统计出来。在游戏过程中,喵星忍者的状态始终是跑动的,喵星忍者能够完成跳跃,另外也能够通过一些道具、相关技能和武器等从而完成游戏。刚开始的时候,喵星忍者具有一些血量,当被敌人或者其他的障碍物攻击的时候,喵星忍者的血量就会出现一定的损失,当最后血量为0的时候,关卡就重新启动。当喵星忍者每战胜一个敌人,喵星忍者就会得到奖励,包括钻石或金币。在喵星忍者获得了很多的钻石或金币后,可以完成武器的升级,还有权限购买大量的道具以及相关的解锁工具等。

2.2 世界地图场景

世界地图场景中的具体功能涉及到了游戏的模式选择以及喵星忍者的信息查看,其次还可以完成道具的购买以及武器的,任务的查看等等。

其中选择游戏模式可以分为以下几个步骤:

①当选择训练的模式,系统就跳转到游戏加载场景,接着跳入到教学模式场景。②玩家从普通关卡中任意选择,便会进入到对应的关卡场景选择中,当关卡被解锁后,就可以进入到关卡的游戏场景中。③如果选择的是无尽模式,那就回出现功能框的弹出,玩家从提示中选择3个难度,具体为普通、炼狱以及英雄。玩家进入普通模式不需要其他的权限。

3 系统设计与实现

3.1 游戏开始场景

在游戏的开始场景实现前,需要对辅助类Global进行介绍,Global类主要是用在开始游戏的时候,初始化信息的函数。Global类中的成员变量提供给游戏很多的信息,比如喵星忍者获得的钻石数、金币数等。Global类保存信息,读取游戏中的所有信息的时候,只需要读取xml文件就可以了,当信息出现变化的时候,要对xml文件中的信息进行修改。Global类中初始化数据信息是通过initGame函数实现的,先是对xml文件的存在性进行判断,如果得出是初次进入游戏。那么需要初始化Global类中相关的变量和xml数据,此外还要建立xml文件。假若xml文件存在,那么就将文件中的信息读取出来,初始化Global类中和信息相关的变量。

CGScene()是CGScene的构造函数。第一步是将场景里面的精灵对象建立起来,比如文字信息和人物头像等。新建“游戏开始”的按钮,同时设置当电点击该按钮的时候,所触发的动作,从而可以成功进入到游戏的加载场景中。将ConBtn按钮设置在屏幕的左上方,并且回调函数是onToggledSettings,该函数的目的是实现控件的隐藏或弹出。另外依次新建三个菜单切换按钮,这几个按钮主要实现的功能是处理音效以及处理背景音乐、和介绍游戏等,他们的回调函数分别是onlnfoClicked、onMusicClicked、onGameClicked。在菜单面板中也增加上这几个菜单切换按钮。并且将标志位进行设置,如果是真,那么表明了弹出了3个控件,反之说明没有弹出。下一步是完成了初始化Global类中的initGame函数。

3.2 游戏加载场景

游戏加载场景的实现具体总结如下:

①LoadingScene函数是LoadingScene的构造函数,其中的参数scenelD代表的是场景id,而参数maplndex代表的是地图索引。第一步是对场景的id进行判断,接着进入到游戏主场景或者世界地图场景中。mapIndex主要是应用在闯关的模式场景中,对mapIndex进行判断,从而选择进入到不同的关卡中。mapIndex的组成部分有3位数字,关卡id对应着第1位上,章节id对应着第3位,比如204代表的是第2章节中的第4个关卡。接着将精灵对象LoadSprite进行初始化,将游戏加载动画完成播放功能。

②void onEnterTransitionDidFinished(),这个函数属于CCNode类的成员函数,该方法的调用场合是切换完节点所在的场景后,这个方法调用是通过Cocos2d-X自动实现的,完全不用手动的方式。该方法,先要是否第一次进入到游戏加载场景进行判断,假如是初次那么就要进入到游戏的加载场景中,也就是完成异步的加载。

结语:掌握手机单机游戏简单易操作,同时不用花费很多的时间,直接将手机中的游戏应用程序打开就能够玩了,很多的用户都对手游十分依赖,现今人们的生活几乎与手机游戏形成了密不可分的关系,生活中处处可以看到人们无论是休息时间还是工作时间,都手里拿着手机打游戏。随着这些年科技技术的发展,跑酷类的游戏逐渐取得了很大的进步,并且其发展趋势是一种井喷式。跑酷类的游戏上手比较容易,不需要太多的技能,同时还和精品游戏中所设计的特质是相符合的,但是跑酷类的游戏要想达到如火纯青的地步还是需要一些能力的,跑酷类的游戏受到了很多玩家们的青睐。

[1]马克,卡夫雷拉,王小振,王恒.iPhone游戏编程实例: iPhone games projects:分享成功游戏开发人员的锦囊妙计[M].人民邮电出版社,2010

[2]徐松林,黄猛.Cocos2d-x手机游戏开发:跨iOS、9ndroid和沃Phone平台[M].人民邮电出版社,2012

[3]赵志荣,关东升.Cocos2d-x学习笔记,完全掌握Lua API与游戏项目开发,the definitive guide to Lua API and game projects[M].清华大学出版社,2016

[4]Muzykov K. Learning iPhone game development with Cocos2D 3.0 harness the power of Cocos2D to create your own stunning and engaging games iOS[J]. 2014

[5]Zirkle P, Hogue J. iPhone Game Development: Developing 2D and 3D Games in Objective-C[J]. Bulletin of Geography. Socio-economic Series, 2012, 17(17):117-125

猜你喜欢
忍者关卡控件
海龟上岸
关于.net控件数组的探讨
软件(2018年7期)2018-08-13 09:44:42
火影忍者·忍者们
视野(2018年4期)2018-03-06 07:28:46
佐贺忍者
佐贺忍者
“鸡蛋忍者”
2015年高考江苏省物理卷一道题的3种解法
物理通报(2015年9期)2016-01-12 06:41:46
妙题巧解
时空穿梭
就这样玩会VBA中常见的自定义控件
电脑迷(2012年24期)2012-04-29 00:44:03