admin管理员组

文章数量:1531374

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

软件开发与应用

信息与电脑

China Computer & Communication

2019年第6期

利用Cocos Creator进行游戏开发的分析

张景焱 马春江

(湖北汽车工业学院 计算机系,湖北 十堰 442002)

摘 要:笔者分析了使用Cocos Creator开发闯关类小游戏的过程,利用这款软件从无到有开发出一款小游戏,主

要介绍了几个场景和相关程序设计技术,介绍了对该软件编辑器的理解和项目结构,通过程序设计理论和实际游戏开发

实践相结合,使用与社会接轨的开发工具,全力推动学生的综合能力发展,对学校进行的游戏程序开发设计理论和实践

有一定的启发和帮助。

关键词:游戏开发;Cocos Creator;Cocos 2dx游戏引擎

中图分类号:TP317  文献标识码:A  文章编号:1003-9767(2019)06-124-02

Analysis of Game Development with Cocos Creator

Zhang Jingyan, Ma Chunjiang

Abstract:

The author analyzed the process of using Cocos Creator to develop the small game of breaking through customs,

(Department of Computer, Hubei University of Automotive Technology, Shiyan Hubei 442002, China)

and developed a small game from scratch with this software. It mainly introduced several scenarios and related programming

techniques, introduced the understanding of the software editor and the project structure, combined the programming theory with the

students'comprehensive abilities will give some inspiration and help to the theory and practice of game programming design in schools.

Key words:

game development; Cocos Creator; Cocos 2dx game engine

actual game development practice, and used the development tools that are in line with the society. Promoting the development of

0 引言

Cocos Creator是雅基软件最新推出的编辑软件,并且它

是一个完整的游戏开发解决方案,内置了Cocos 2d-x引擎,

打开Cocos Creator编辑器,各种一键式的自动化流程能使用

最少的时间解决问题。相比Cocos 2d-x引擎编写项目,Cocos 

Creator构建项目的方式更加友好。它提供面向设计和开发两

种工作流,将美工和程序部分的工作分开,提供顺畅的分工合

作模式,可实时预览运行效果,是一个值得学习和研究的游戏

开发平台。本文介绍了使用Cocos Creator进行游戏开发的体会。

本游戏场景中涉及到的角色:Hero,Crab,Princess,

Platforms。功能为玩家通过键盘操作Hero的移动,避免与

螃蟹相撞,附加于Crab结点上的脚本使得Crab有两种不同

的状态,每种状态都会有不同的移动速度,因此增加了游

戏难度。Hero通过跳跃到移动和静止的柱子上,一旦触碰

Princess则达到通关条件。在游戏总的构架中,主角移动灵

活,游戏容错率较低,使得游戏难度上升。开发者可较好的

控制游戏难度,使得难度系数呈梯状上升。游戏失败的条件

设计为:Hero与螃蟹相撞、Hero掉入底部、Hero触碰到关

押Princess监狱的火焰。

1 总体设计

在游戏世界中,Hero和其他所有的物体都添加了boxcollider

组件,并且开启了碰撞检测函数lisionmanager

(),通过ct()函数检测主动撞击体/被

撞体boxcollider边框是否相交,当两个物体的边框相接触

时会有三个函数来响应碰撞,分别为接触onCollisionEnter: 

function (other,self),进行onCollisionStay: function 

(other, self),离开onCollisionExit: function (other)。通过

onkeypressed( )和onKeyReleased( )函数响应键盘事件。当

通过键盘输入移动指令后,在无碰撞期间,通过每一帧调用

Hero脚本中update函数实现计算x,y方向的速度,通过速

作者简介:张景焱(1998—),男,甘肃庆城人,本科在读。研究方向:软件设计、游戏开发。

通讯作者:马春江(1963—),男,河南叶县人,讲师。研究方向:软件设计理论、动画设计理论、游戏设计理论。E-mail:

1932196@。

— 124 —

2019年第6期

信息与电脑

China Computer & Communication

软件开发与应用

度来更新主角的移动。当出现碰撞时,调用碰撞接触函数,

在碰撞函数中会复原主角在碰撞前的位置和速度,将状态更

新到无碰撞的状态。通过update函数更新主角的移动。

界面设计:本游戏设计了四个场景:Hello world、main、

success和false等场景。

结点设计:label结点(文字相关设置的结点),sprite

结点(可被外部图片渲染的结点),button结点(用于点击

响应自定义事件的结点),node结点(空结点用于管理其他

结点),particlesystem结点(粒子结点),canvas结点(UI

类型结点,含有自适应功能,使游戏适应不同分辨率的设备),

layout结点(子节点自动对齐的容器)。

树形结点结构的设计:一些结点需要被统一管理,涉及

统一移动,考虑到渲染顺序的优先级,需要用到树形结点结

构的设计。

脚本的设计:根据预想的功能去设计脚本并且作为组件

去控制结点的功能,改变结点的属性。

2 游戏的细节设计

2.1 Main场景

图1为Main场景的界面设计效果图。

图1 Main场景的界面设计效果

(1)创建场景。由于预先设计动态调整背景的功能,

所以设计了两个背景,在层级管理器中结点的渲染顺序从上

往下,所以background_random精灵结点会被background精

灵结点遮住,加入了Window声明的全局变量,并且绑定到

开启随机背景的按钮上,通过按钮绑定事件的响应来改变全

局标志数,依此判断是否需要隐藏background背景。

(2)用root管理墙体。本质上是给空结点添加了

boxcollider边框来判断是否和主角碰撞。如果主角碰到底部

地面时,地面的碰撞分组是false,触发失败切换失败场景的

函数。但是碰到左右两个墙体时,它们碰撞分组为default则

不触发任何函数。

(3)platform结点用来管理在main场景中的移动立柱,

和静止立柱的空结点。

(4)menu结点管理各种设置按钮。将结点绑定到按钮

上,实现按钮对应的功能,menu结点默认是隐藏的,当点击

setting按钮时,判断menu结点的显示状态(调用.

active)使得mene结点在显示和隐藏状态中相互切换。

2.2 Helloworld场景

Helloworld场景中用户可选择是否开启Helloworld和

main场景的游戏背景随机模式。在产生随机背景脚本下

的properties中,声明了两个属性:绑定精灵结点的spicon

和spicons渲染数组。Cocos Creator提供产生一个随机数的

API,编写了函数用来产生一定范围的随机整数。在onload

函数中(每次运行场景时)产生随机数,并且将spicons数

组中的渲染图给绑定的spicon结点的spriteframe,完成贴图

的更换。每次场景运行时都会产生随机的图片,增加游戏体

验感,提高交互性。

3 结 语

Cocos Creator是一个完整的游戏开发解决方案,包含

游戏引擎、资源管理、场景编辑、游戏预览和发布等游戏开

发所需的全套功能,拥有组件化开发和数据驱动的特点与优

势。通过本软件开发发现Cocos Creator具有数据驱动的特

点:数据驱动从数据开始,一旦数据发生改变,对应的算法

和界面均会得到改变。其优点如下:控制复杂度,将复杂的

代码结构变成复杂的数据结构;隔离变化,将数据与逻辑分

离开,机制和策略的分离,使得逻辑更加清晰。这一切得益

于Cocos Creator的架构和设计,带来的益处都融了每个产品

中。利用这个平台可较快地开发出一个游戏模型和相关控制

机制,是一个较好的开发平台,希望能激发更多学生利用这

个平台进行设计,提高程序设计水平。

— 125 —

本文标签: 结点游戏开发设计场景