网站首页  词典首页

请输入您要查询的论文:

 

标题 基于Cocos2d—x引擎的跨平台跑酷类手游的设计与实现
范文

    沈晨+谢璨

    摘要:该文介绍了一款基于Cocos2d-x引擎的跑酷类手游的开发全过程。首先对Cocos2d-x技术的优点以及三层架构模式进行简要介绍,然后结合软件工程的思想,对游戏的需求分析进行了详细描述,接着给出了游戏的总体设计和详细设计,包括游戏体系结构、功能模块、类设计等。最后介绍了游戏中几个关键功能的具体实现,并且给出了部分游戏界面展示,同时对游戏进行了系统的测试,各测试项均显示正常。

    关键词:Cocos2d-x;游戏引擎;跨平台;跑酷

    中图分类号:TP319 文献标识码:A 文章编号:1009-3044(2017)29-0046-02

    伴随着移动互联网时代的深入,智能手机、平板电脑、智能手表等移动智能设备在近几年的爆发性地飞速发展,移动终端手游市场成为了最受人们关注的市场之一。而在手游的开发过程中,开发者不得不面对一个移动设备多平台的现状,使用不同语言在不同的平台上做开发和维护,必将使得开发成本不断增加。因此,一个支持跨平台的游戏引擎在广大开发者和众多游戏企业中必将备受欢迎。而Cocos2d-x[1]引擎拥有强大跨平台能力,并继承Cocos2d系列引擎的一贯特点:灵活、高效、操作简单,并且功能非常强大。Cocos2d-x只需要编写一次代码,就可以无缝的部署到包括IOS、Android、Windows、OS X在内的大量主流系统平台上[2]。在当今终端移动多样化的时代,把游戏部署到多种平台是游戏开发的大趋势,Cocos2d-x的跨平台能力无疑帮助开发者节约了大量的时间和资本。本文利用Cocos2d-x引擎设计开发出了一款可支持多个移动端的跑酷类游戏—《奔跑吧马里奥》,在各项功能以及性能测试中,均显示良好。

    1 Cocos2d-x技术简要分析

    游戏引擎一般理解为已编写好的游戏框架或者图像应用程序的核心组件。引擎为游戏开发者提供开发游戏所需的各种框架组件,其目的是为了让游戏设计者能容易并且迅速的做出游戏而不用从零开始。Cocos2d-x使用C++开发,基于MIT开源协议及OpenGL ES,支持Lua、Javascript 脚本语言和C++语言,支持插件和二次开发。Cocos2d-x引擎架構分三个层次:最底层为操作系统层,该层包括引擎所支持的所有移动操作系统,如IOS、Android、Windows Phone、OSX、Windows、Ubuntu等等;中间层为引擎层,包括图像模块、声音模块、物理引擎模块、脚本模块;最上层为应用游戏层,包括了开发者所构建的整体游戏[3][4]。

    2 游戏需求分析

    《奔跑吧马里奥》(RunningMario)是一个受90年代风靡一时的霸王机上的经典小游戏《超级马里奥》及前两年火爆全中国的跑酷类手游《天天酷跑》这两款游戏启发而产生的游戏作品。因而游戏作品以马里奥世界的各种角色、敌人、道具等等主题元素为基础,以跑酷类游戏的快速、刺激、挑战性、易上手、难精通等等游戏理念为核心。游戏总体功能需求如图1所示。

    1) 开始界面

    l 游戏设置:点击设置按钮可以设置背景音乐和音效的开关;

    l 游戏相关:点击游戏相关按钮可以查看游戏版本,开发者等的信息;

    l 挑战教程:点击开始挑战按钮,第一次进行挑战时会显示游戏教程;

    l 每日签到:点击每日签到按钮,可进行每日签到,获得金币。

    2) 选择关卡模块

    l 动态背景:界面背景由上向下循环滚动;

    l 特效动画:选择关卡后,马里奥动画跳落到关卡标志上;

    l 滑动选择关卡:向左滑动选择关卡。

    3) 游戏界面

    l 暂停、继续、重新游戏:在游戏过程中,可点击暂停菜单按钮,暂停菜单里面可以点击继续游戏、重新游戏、主菜单;

    l 查看任务栏、能量条进度:通过查看左上角的任务栏可知道地图完成进度,通过查看能量条进度可知道主角特殊技能是否激活;

    l 地图显示:当玩家进入选中的关卡后,自动加载相应地图;

    l 道具显示:随机产生道具放在地图随机位置;

    l 闯关结算:当玩家闯关成功或者失败,都会有金币的结算,可查看排行榜;

    l 玩家控制角色:玩家可以点击跳和攻击按键控制角色进行跳、二段跳、攻击;

    l 角色释放技能:在能量条满的前提下,激活角色特殊技能,点相应技能按钮释放技能;

    l 敌人攻击:在地图随机位置产生的敌人进行攻击动作。

    3 游戏设计

    3.1 游戏总体设计

    游戏RunningMario的体系结构主要包括:游戏业务部分,数据持久化部分[5]。

    游戏业务部分细分为四个层次:

    1) 游戏场景层:由开始场景、选择关卡场景、游戏场景三大场景组成,该层封装了地图创建、主角创建、敌人创建,GUI创建,动画创建等逻辑;

    2) 游戏精灵层:包括主角精灵,敌人基类精灵,各敌人精灵,每一个精灵都封装了自身的逻辑,如主角精灵的跳动、技能释放等,各敌人攻击、被攻击等逻辑;

    3) 游戏公共层:包含整个游戏的配置文件,整个游戏的公共函数,如特效场景切换、生成素材文件存储地址和动态匹配生成动画等逻辑[6];

    4) 游戏系统层:主要用于游戏业务逻辑与数据持久化逻辑之间交互完成玩家数据存储逻辑和游戏管理器管理整个游戏。

    数据持久化部分,通过获取从游戏业务逻辑传递过来的玩家数据,完成数据存储操作。

    3.2 游戏详细设计

    游戏RunningMario主体的类设计有公共类、场景类、主角类、敌人类、游戏管理类、数据存储类这六大类[7],各个类的作用为:1)公共类:定义了整个游戏的公共配置文件及公共工具方法。2)场景类:定义了游戏包含的开始、选择关卡和主游戏三大场景,其之下由多个层类组成,各个层类又定义了游戏各式各样的GUI、地图等的生成属性和方法,如:签到板、控制角色的按键、闯关结算板等。3)主角类:定义了马里奥的存活状态、各种动作和释放技能等属性和方法。4)敌人类:定义了乌龟、蘑菇层、刺猬、飞弹四大敌人类及其攻击动作等属性和方法。5)游戏管理类:定义了玩家的数据、数据修改、数据查询等等的属性和方法。6)数据存储类:定义了游戏管理类中的玩家数据的增、删、改、查的基本操作方法[8]。

    4 游戏实现

    由于Cocos2d-x支持跨平台,单个平台上的工程开发完成后,可通过跨平台环境移植游戏到Cocos2d-x所支持的不同平台上运行。开发过程中我们选择了Win32工程作为开发基础工程,待Win32工程完成后,进行跨平台移植游戏到Android平台上运行。需要用到的开发工具包括:Visual Studio 2015、Cocos3.7、Python2.7,跨平台移植开发工具包括:JDK1.7、Eclipse、ADT17、NDK17、AndroidSDK。

    在本游戏开发过程中使用了Action动画和帧动画,而Cocos2d-x引擎提供了这两种动画的创建方式。其中Action动画的实现方式可以简单描述为:为场景、层、精灵等基本元素添加一个动作,而由元素来操作这个动作完成Action动画。元素操作动作时,可以构造一个动作序列(Sequence),把几个动作组合起来放入序列中,统一由元素操作动画播放。而帧动画在很多游戏引擎中都有应用。帧动画就是每一帧由一张图片组成,当播放每一帧时形成一个完整的动画。在本游戏中,马里奥跳、飞、登场等动画和敌人攻击和死亡等动画都是由帧动画来完成的。

    在本游戏设计过程中,游戏地图的滚动与角色、角色间的碰撞检测是最大的难点,并对设计的成败起决定性作用。本游戏地图的创建方式使用了Cocos2d-x支持的开源地图TileMap(瓦片地图),重点是实现多段地图的连续滚动。地图滚动的实现思想如下:首先创建两段地图,前段已经截入画面,另一段准备载入画面。其次根据当前屏幕中第一段地图的X坐标小于0为判断条件构造循环结构来处理更新地图。然后再次通过Schedule时间调度器去每帧调用第二步中的方法更新地图。最后,移除被更新的地图。

    对于碰撞检测,Cocos2d-x内置的物理引擎携带了强大的物理检测功能,其中也包含了碰撞检测功能,本游戏采用了物理引擎中的碰撞盒子来进行马里奥与敌人间的碰撞检测,具体过程为:首先给每个创建的角色绑定上一个碰撞盒子。其次,取消碰撞盒子在碰撞时产生力的效果。最后当角色移动时,碰撞盒子也在移动,当盒子间产生交点,即说明角色间发生碰撞。

    5 游戏测试

    游戏RunningMario的测试方法采用黑盒测试[9],基本测试环境为Windows和Android平台,主要测试的项目为功能测试、性能测试。首先,进入开始界面进行每日签到等相关操作;其次,进入选择关卡界面选择关卡;再次,进入游戏界面闯关;最后,查看闯关结算和退出游戏。在各项功能测试及性能测试中,各项指标均显示正常,整个游戏过程运行良好。游戏部分界面如图2所示。

    6 总结

    本文给出使用C++语言,通过Windows系统上的Visual Studio工具,开发一款基于Cocos2d-x引擎的跑酷类手游的全过程。首先对Cocos2d-x技术做了简要分析,然后结合软件工程的思想,对所开发游戏做了需求分析。接着对游戏做了总体设计和详细设计。最后在游戏的开发实现阶段,介绍了关键功能是如何实现的,并且给出了部分游戏界面展示,同时对游戏进行了系统的测试,各测试项均显示正常。

    參考文献:

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

    [2] 陆奎安. 基于Cocos2d-x引擎的跨平台游戏设计与实现[D].武汉: 华中科技大学, 2014.

    [3] 钟迪龙. Cocos2d-x游戏开发之旅[M]. 北京:电子工业出版社, 2013:15-27.

    [4] 徐磊, 范柳青. 浅析3D游戏引擎[J]. 电脑知识与技术, 2011, 7(17):31-33.

    [5] 林罗龙. 电脑游戏设计中的平衡策略[J]. 电脑知识与技术, 2009, 5(21):19-21.

    [6] 巴克, 兰德. 游戏编程中的人工智能技术[M]. 北京:清华大学出版社, 2006:17-31.

    [7] 姜旭. 手机游戏, 小屏幕上的大战场[N]. 中国知识产权报, 2012-06-08(11).

    [8] Richard, Taylor, Mario Zechner. Beginning Android Games[M]. Apress, 2011:590-592.

    [9] 海藩. 软件工程导论[M]. 北京:清华大学出版社, 2007:152-179.

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/3/11 20:48:38