Cocos2d-x 3.x入门教程(一):基础概念

 更新时间:2020年4月25日 17:39  点击:1635

前言

接触游戏开发时间不长,之前一直都是写Lua,写Lua肯定是没有什么发展的啦,至少你要会写的。写客户端,肯定要看看Cocos2d-x了。从今天起,正式开始Cocos2d-X的学习之旅。

之前一直都是做C++开发的,转过来看Cocos2d-x,从语言上来说,没有多少问题。对于我来说,Cocos2d-x就是一个类库,就类似于MFC、ATL和QT一样,就是一个游戏类库,而我就按照学习类库使用的方法去学习Cocos2d-x。这篇文章叫基础概念,但是还是从整体来说说Cocos2d-x这个类库的。

基础架构

在Cocos2d-x中,主要的概念包括Director、Scene、Layer和Sprite这几个重要的概念,它们之间的关系如下。

这幅结构图是非常重要的,在以后的开发过程中,基本也就是基于这个结构图来理清项目结构了。Cocos2d-x就是这样的管理着不同的对象,然后组成一个个完美的、月流水上亿的项目,有些事情就是这样。

Director(导演)

Director控制着整个游戏,会经常进行一些调度控制;在Cocos2d-x 3.x中,Director使用的是单例模式,在整个游戏运行期间,它就只有一个实例。Director是整个Cocos2d-x 3.x的核心,是整个游戏的导航仪,在游戏中,一般由Director来完成以下操作的控制:

1.OpenGL ES的初始化;
2.场景的转换;
3.游戏的暂停、继续的控制;
4.世界坐标和GL坐标之间的切换;
5.对节点的控制;
6.保存和调用保存的游戏数据;
7.屏幕尺寸的获取,等等。

Scene(场景)

Scene场景是Cocos2d-x 3.x中必不可少的元素,游戏中我们需要构建不同的场景(至少一个),游戏里关卡、板块的切换就是一个个场景之间的切换。场景的一个重要的作用就是流程控制的作用,我们可以通过Director的一系列方法控制游戏中不同的场景的自由切换。同时场景是层的容器,包含了所有需要显示的游戏元素。通常,当我们需要完成一个场景的时候,会创建一个Scene的子类,并在子类中实现我们需要的功能。比如:我们可以在子类的初始化中载入游戏资源,为场景添加层,启动音乐播放等等。

Layer(层)

Layer是处理玩家事件响应的Node子类。与场景不同,层通常包含的是直接在屏幕上呈现的内容,并且可以接受用户的输入事件,包括触摸、键盘输入等。我们需要在层中加入Sprite(精灵)、文本标签或者其它游戏元素,并设置游戏元素的属性,比如位置、方向和大小;设置游戏元素的动作等。在我们设计好层以后,只需要把层按照顺序添加到场景中就可以显示出来了。

Sprite(精灵)

Cocos2d-x 3.x中的精灵和其它游戏引擎中的精灵是类似的,它可以移动、旋转、缩放、执行动画,并接受其它转换。Cocos2d-x 3.x中的Sprite由Texure、Frame和Animation组成,由OpenGL ES负责渲染。在后续的学习过程中,我还会继续总结关于Sprite的各种知识。

总结

这篇文章只是学习Cocos2d-x 3.x的开始,我并没有贴上任何的代码,作为新手来说,贴再多的代码也是徒劳,看不懂啊。所以,还是先整体了解一下Cocos2d-x的整体结构,这样,在日后的学习中,思路会更清晰一些。无论如何,请记住基础架构那一节中的树形结构图。

Cocos2d-x学习的入门门槛很低,以至于谁都可以进入Cocos2d-x开发的世界,如何在众多开发者中保证自己的优势,在后续的学习过程中,我们不仅要会用Cocos2d-x干活,同时也要知道Cocos2d-x是怎么干的活。

知其然,也要知其所以然。

[!--infotagslink--]

相关文章

  • Lua语言新手简单入门教程

    这篇文章主要给大家介绍的是关于Lua语言新手入门的简单教程,文中通过示例代码一步步介绍的非常详细,对各位新手们的入门提供了一个很方便的教程,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。...2020-06-30
  • C#线程入门教程之单线程介绍

    这篇文章主要介绍了C#线程入门教程之单线程介绍,本文讲解了什么是进程、什么是线程、什么是多线程等内容,并给出了一个单线程代码示例,需要的朋友可以参考下...2020-06-25
  • 理解Vue2.x和Vue3.x自定义指令用法及钩子函数原理

    这篇文章主要介绍了理解Vue2.x和Vue3.x的自定义指令的用法及钩子函数原理,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪...2021-09-24
  • CocosCreator入门教程之用TS制作第一个游戏

    这篇文章主要介绍了CocosCreator入门教程之用TS制作第一个游戏,对TypeScript感兴趣的同学,一定要看一下...2021-04-16
  • Cocos2d-x UI开发之CCControlColourPicker控件类使用实例

    这篇文章主要介绍了Cocos2d-x UI开发之CCControlColourPicker控件类使用实例,本文代码中包含大量注释来讲解CCControlColourPicker控件类的使用,需要的朋友可以参考下...2020-04-25
  • php入门教程(类实例教程)

    这里主要讲到关于在php教程类的调用,申请明,使用以前各种类的实例方法与操作过程,让你清楚的知道php类的construct destruct clone call wake sleep用法。 简单购物车...2016-11-25
  • 一看就懂的ReactJs基础入门教程-精华版

    现在最热门的前端框架有AngularJS、React、Bootstrap等。自从接触了ReactJS,ReactJs的虚拟DOM(Virtual DOM)和组件化的开发深深的吸引了我,下面来跟我一起领略ReactJs的风采吧~~ 文章有点长,耐心读完,你会有很大收获哦...2021-04-05
  • php入门教程,?号表达式

    下面举一个很简单的?表达式的实现吧,其实它就是简单的if else哦。 <? $a = 5; //定义变数a=5 $b = 3; //定义变数b=5 $c = ($a==$b) ? ("yes") : ("no"); //如果...2016-11-25
  • php入门教程:php rtrim()实例教程

    php入门教程:php rtrim()实例教程 定义和用法 该rtrim ( )函数将删除空格或其他预先确定的性质从右侧的一个字符串。 语法 rtrim(string,charlist) 参数说明 字符...2016-11-25
  • Golang极简入门教程(一):基本概念

    这篇文章主要介绍了Golang极简入门教程(一):基本概念,本文讲解了Golang的基本知识、基础语法、相关术语等,需要的朋友可以参考下...2020-05-01
  • Golang极简入门教程(三):并发支持

    这篇文章主要介绍了Golang极简入门教程(三):并发支持,本文讲解了goroutine线程、channel 操作符等内容,需要的朋友可以参考下...2020-05-01
  • php 入门教程:metaphone 函数

    定义和用法 该metaphone ( )函数计算metaphone关键的一个字符串。 阿metaphone关键是如何一连串的声音,如果说,由讲英语的人。 该metaphone ( )函数可用于拼写应用...2016-11-25
  • php入门教程之文件操作基础

    在有些场合中需要以文件的形式来对内容进行存储,通常这时候需要对文件进行一系列的操作,PHP中对于文件的操作跟其他计算机程序设计语言对文件的操作类似,对于文件的操作...2016-11-25
  • PHP运算符之PHP基本入门教程

    运算符是任何一门开发语言中会用到的基本内容,下面我来介绍PHP运算符的一些基础知识与使用方法。 运算符用于对值进行运算. PHP 运算符 本部分列出了在 PHP 中使用...2016-11-25
  • Php入门教程之PHP If和else语句用法详解

    If和else在php中是条件判断语句,他可以多层实现数据的判断了,下面我来给大家介绍If和else使用方法与一些简单的实例了。 条件语句 当您编写代码时,您常常需要为不同...2016-11-25
  • php入门教程第一课简单的PHP显示与嵌入PHP

    php入门教程第一课简单的PHP显示与嵌入PHP 代码如下 复制代码 <html> <head> <title>第一个php教程程序</title> </head> <body> <?php...2016-11-25
  • Cocos2d-x Schedule定时器的使用实例

    这篇文章主要介绍了Cocos2d-x Schedule定时器的使用实例,本文的讲解内容包含在代码注释中,需要的朋友可以参考下...2020-04-25
  • Cocos2d-x中实现弹出对话框示例

    这篇文章主要介绍了Cocos2d-x中实现弹出对话框示例,注意本文代码中的注释,本文同时给出了效果图,需要的朋友可以参考下...2020-04-25
  • Php入门教程一之PHP 数组用法

    在php中数组是一个很重要的数据类型他可以存储不同类型的数据,相对于其它简单的整型,字符型只能存放单一的数据要强很多,下面我来介绍php数组用法。 PHP数组可以说非...2016-11-25
  • Div+CSS布局入门教程--写入整体层结构与CSS

    接下来我们在桌面新建一个文件夹,命名为“DIV+CSS布局练习”,在文件夹下新建两个空的记事本文档,输入以下内容: 这是XHTML的基本结构,将其命名为index.htm...2017-07-06