收藏 分享(赏)

基于Cocos2d-x引擎的环保游戏设计_罗凯风.pdf

上传人:哎呦****中 文档编号:2642000 上传时间:2023-08-20 格式:PDF 页数:3 大小:2.55MB
下载 相关 举报
基于Cocos2d-x引擎的环保游戏设计_罗凯风.pdf_第1页
第1页 / 共3页
基于Cocos2d-x引擎的环保游戏设计_罗凯风.pdf_第2页
第2页 / 共3页
基于Cocos2d-x引擎的环保游戏设计_罗凯风.pdf_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、2023.7电脑编程技巧与维护1概述随着社会的发展,科技也在不断地进步,虽然工业现代化带来了日益丰富的物质财富,但凡事具有两面性,它同时也会对环境造成影响,人们不得不为此付出了较大的代价1,因此强调人与自然应和谐共生,将保护环境的意识和行为落实到位。对于青年大学生来说,素质教育很重要,培养良好的环保意识也同等重要2。就目前而言,市面上有许多优秀的游戏引擎,例如,Unity、Cocos2dx、Egret(白鹭)等3。传统的桌面游戏引擎,如OGRE、Unreal Engine、Unity、CryEngine等相对复杂,而且学习曲线较长,学习门槛高,所需的时 间 和 金 钱 成 本 极 其 昂 贵。

2、伴 随 着 手 机 的 普 及 和HTML5技术的发展,涌现出针对手机和浏览器的游戏引擎,例如,Cocos2d-x、Three.js、LibGDX、Egret En-gine等,这些游戏引擎相对轻量,容易上手,比较适合初学者4。目前市场上多数的2D类游戏都是采用Co-cos2d-x引擎进行开发的。因此基于Cocos2d-x进行环保游戏设计且游戏只涉及Windows32平台的研究与开发,暂不考虑移植至其他平台。Cocos2d-x不仅开源,还是一种能够支持多种操作系统的游戏引擎,使游戏开发的效率获得了提升。Co-cos2d-x游戏引擎围绕Cocos2d跨平台提供的框架,抽象出精灵和动作等概念并封装

3、了复杂OpenGL图形接口,使游戏开发的难度降低了,并简化了其开发过程5。Tiled是一款2D关卡编辑器,风格类似mini版的Photoshop,简单易用,基于Apache/BSD/GPL等多重许可。Tiled的主要功能是编辑各种形式的瓦片地图,它支持直线矩形瓦片层,也支持投影等距、交错等距和交错六边形层。Tiled还支持对象层,可以自由放置图像和文本,采用对话框/引导文本等信息注释关卡。该游戏界面的背景地图使用了瓦片地图技术。瓦片地图技术的使用,只需通过使用小瓦片构建的地图资源,即可完成渲染与绘制游戏背景,有效地提高了手机绘图效率与性能,减轻了硬件资源的负载,缩减了安装文件的规模,也方便管理

4、游戏引擎6。该游戏是基于Visual Studio 2013开发环境,采用C+语言,结合Cocos2d-x游戏引擎和Tiled设计的一款冒险类环保游戏环保大冒险。2游戏功能框架该游戏参考大冒险类经典游戏规则并改进游戏设计,程序主要实现的总体结构包括实体模块、逻辑模块、音效模块、用户界面(UI)设计等。其中,实体模块包括用户控制的玩家、地图上根据关卡数自动初始化的终点、可通行道路、提问者4类实体。逻辑模块包括游戏中所有的判断,例如,游戏输赢、是否进入提问、是否回答正确、是否可移动等相关逻辑判断;音效模块包括游戏开始时自动播放的背景音乐、触发提问时的音效、回答正确的音效、回答错误的音效、游戏胜利的

5、音效等。通过导入的tmx地图文件实现地图的界面,通过Cocos2d-x引擎提供的UI类的单选框及按钮而搭建自定义提问界面,通过引擎的精灵Sprite及引用的xml文件共同实现血量效果。该游戏的总体结构框架如图1所示。作者简介:罗凯风(2002),男,本科,研究方向为软件设计;李明澣(2002),男,本科;杜威,男,通信作者,副教授,研究方向为计算机应用。基于 Cocos2d-x 引擎的环保游戏设计罗凯风1,李明澣2,杜威1*(1.长春大学计算机科学技术学院,长春130022;2.长春大学机械与车辆工程学院,长春130022)摘要:通过 Cocos2d-x 游戏引擎,在 Visual Studi

6、o 2013 开发环境下,利用 Cocos2d-x 提供的场景、层、精灵、动画、音效等技术,设计了一款环保益智游戏“环保大冒险”。该游戏主要实现了场景的布局和加载、按钮回调、游戏胜负判定等功能。经测试表明,系统可实现环保大冒险的基本功能,对基于 Cocos2d-x 游戏引擎的设计和实现有一定的参考价值,同时对学习环保知识有一定帮助。关键词:Cocos2d-x 引擎;C语言图1游戏总体结构框架环保大冒险实体模块玩家终点提问者可通行道路UI设计地图界面提问界面血量界面逻辑模块游戏输赢提问答案进入提问行走逻辑音效模块背景音乐游戏音效158DOI:10.16184/prg.2023.07.012202

7、3.7电脑编程技巧与维护3游戏实现3.1初始化该模块实现了游戏本体、地图、玩家对象等初始化。采用子类化层,添加一个静态的创建场景的函数方法,完成了对场景初始化和层的创建,而通过重写父类生命周期函数init(),完成了层的初始化,同时通过Sim-pleAudioEngine类的实例化调用playBackgroundMusic()方法开启了背景音乐的播放,通过引入Tiled实现的tmx文件和UTF-8编码的xml文件,共同构建了游戏的初始化界面,并开启了键盘事件监听以接收输入的键盘信息。地图资源则采用了Tiled提供的tmx文件,根据关卡数t的变化引入了相应的地图资源文件。玩家对象等实体类对象则采

8、用了Cocos2d-x引擎的精灵,引用了Tiled提供地图中obj_0对象层中的对应对象,获取对象位置后保存在ValueMap数据容器中,将精灵与对象绑定,完成对应实体的初始化。3.2逻辑规则3.2.1 行走逻辑在开启引擎中的键盘监听后,每按下、抬起相应的按键后,程序会执行相应的回调函数,通过按下键盘按键响应的回调函数中设置isOK值的判断,使键盘同一时刻只接受一个按键信息的输入,设置isContinue值使进入提问环节时,玩家无法再移动。回调函数通过switch结构接收按键信息,然后根据tmx文件提供的walk层信息,进行判断是否具有GID值,以判断下一步是否为可通行道路,并通过MoveBy

9、()函数实现不同方向的移动,代码如下。voi d MyLayerA:onKeyPressed(EventKeyboard:KeyCode myKeyCode,Event*pEvent)/有按键按下if(isOk&isContinue)/判断Vec2 pos=sp-getPosition();Point playerPoint(pos.x/70,9-pos.y/70);/此时的坐标,注意由于是引用了Tiled的tmx地图文/件,需注意OpenGL与UI坐标系的区别,需进行坐标/的转化。3.2.2 进入提问通过将移动后玩家实体所在的坐标传入trigger()函数,判断是否有Tiled提供test层

10、的GID值,若有,则通过引擎提供的精灵创建UI背景,引擎自带的UI类的单选框和按钮构成问题的载体,通过引用存储了环保知识题库、UTF-8编码的xml文件,输出中文字体,共同创建了提问的UI,代码如下。Scene*void MyLayerA:trigger(Point point)/判断是否/进入提问环节TMXLayer*testLayer=pMap_0-layerNamed(test);/获取提问者所在位置的信息。if(0!=(testLayer-tileGIDAt(point)/下步是否有/提问者./单选框myRadioButtonGroup=RadioButtonGroup:create(

11、);question-addChild(myRadioButtonGroup);for(size_t i=0;i setPosition(Vec2(125,150+i*65);/选项间隔距离myRadioButtonGroup-addRadioButton(myRadioButton);myRadioButtonGroup-addEventListener(CC_CALLBACK_3(MyLayerA:myRadioButtonGroup-CallBack,this);/开启事件监听/确认按钮的创立Button*myButton=Button:create(mapRes/btn_0.png);

12、.myButton-addTouchEventListener(CC_CALL-BACK_2(MyLayerA:myButtonCallBack_1,this);/开启/触摸事件监听myButton-setPressedActionEnabled(true);/使点击后放大一下/问题ask(CCRANDOM_0_1()*27+1);3.2.3 判断问答正确程序通过myRadioButtonGroup组件中的getSelected-ButtonIndex()函数获取当前被勾选选项对应单选框的index值,再用switch语句同分为4类的题号对应进行判断。若满足相对应的分支case,则为正确答案;

13、反之,则错误。3.2.4 通关判断通过将移动后的节点位置传入isEnd()函数后与引入tmx文件获取的end对象位置进行比较,判断是否抵达终点,抵达终点后判断当前关卡是否为最后一关,若为最后一关,则游戏结束;否则进入下一关,代码1592023.7电脑编程技巧与维护如下:void MyLayerA:isEnd(Point point)Vec2 pos=end-getPosition();/获取该关卡的终/点位置Point playerPoint(pos.x/70,9-pos.y/70);/转换/坐标系if(playerPoint=(point)/判断移动后下一步坐标/是否为终点的坐标./移除该关

14、卡的资源.4游戏测试游戏测试时,单击hbdmx.exe文件后进入游戏的初始化界面。单击“开始游戏”按钮后进入第1关游戏界面,此时用户可通过键盘W、A、S、D或方向键输入的键盘信息控制玩家在可通行道路上进行移动。当触碰到绵羊时,进入提问界面且键盘输入无效,改用鼠标输入。提问环节界面如图2所示。此时用户可利用鼠标勾选想选择的选项前的方框,单击“确认”后进行判断正误。回答错误提问则生命值(Hp)减1,且需继续回答该提问,直至Hp为0或选对正确选项。回答正确提问则可继续前进直至抵达最后关卡的终点获得胜利。然后,对移动和提问功能进行黑盒测试,均正常实现设想功能。在测试过程中,游戏的运行稳定及界面清晰,达

15、到了实际应用的要求。5结语采用C语言,利用开源的游戏Cocos2d-x引擎设计开发了一款环保大冒险游戏,通过Cocos2d-x完成图形渲染、构建游戏框架、应用程序和图形界面的交互7。详细介绍了游戏开发环境和游戏引擎;展示出游戏的总体框架结构;并对各个模块和功能的代码进行编辑和实现;通过黑盒测试方法对该游戏进行测试。其测试的结果表明,此开发的需求设计合理,环保大冒险游戏设计思路明晰、界面友好,且具有良好的用户交互性,同时游戏运行流畅、功能齐全,该游戏暂无明显错误或漏洞,即完成了该游戏环保大冒险的设计。参考文献1张美玲,孙雷.环保工程设计中绿色环保理念的应用分析J.皮革制作与环保科技,2022,3

16、(13):49-51.2李洪荣.高校大学生素质教育中低碳环保意识的培养评 荒野与美国思想J.环境工程,2021,39(5):271.3于万国,胡宗森,隋丽娜,等.新工科下软件工程专业实践案例构建研究以基于Cocos2d-x引擎的跨平台游戏开发为例J.计算机技术与发展,2021,31(2):191-196.4王玉峰.基于Cocos2d-x的游戏引擎J.电子技术与软件工程,2017(19):51.5刘皎.基于Cocos2d-x引擎的麻将游戏设计J.微型电脑应用,2019,35(12):5-9.6曾家鹏.基于Cocos2d-x的消除益智类手机游戏设计与实现J.软件导刊,2017,16(10):118-122.7吴晓雪,何南,缪新颖,等.基于Cocos2d-x引擎的移动游戏设计与应用J.现代电子技术,2018,41(24):106-109.图2提问环节界面160

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 专业资料 > 其它

copyright@ 2008-2023 wnwk.com网站版权所有

经营许可证编号:浙ICP备2024059924号-2