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

前言

接触游戏开发时间不长,之前一直都是写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是怎么干的活。

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

时间: 2024-10-26 08:25:58

Cocos2d-x 3.x入门教程(一):基础概念_C 语言的相关文章

理解JavaScript的变量的入门教程_基础知识

变量是用于存储信息的容器:   x=5; length=66.10; 还记得在学校里学过的代数吗? 当您回忆在学校学过的代数课程时,想到的很可能是:x=5, y=6, z=x+y 等等.   还记得吗,一个字母可以保存一个值(比如 5),并且可以使用上面的信息计算出 z 的值是 11.   您一定没有忘记,对吧.   这些字母称为变量,变量可用于保存值 (x=5) 或表达式 (z=x+y). JavaScript 变量 正如代数一样,JavaScript 变量用于保存值或表达式.   可以给变量

HTML 30分钟入门教程_基础教程

HTML 30分钟入门教程 作者:deerchao 来源:unibetter大学生社区 转载请注明来源 本文目标 30分钟内让你明白HTML是什么,并对它有一些基本的了解.一旦入门后,你可以从网上找到更多更详细的资料来继续学习. 什么是HTML HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,它规定了自己的语法规则,用来表示比"文本"更丰富的意义,比如图片,表格,链接等.浏览器(IE,FireFox等)软件知道HTML语言的语法,可以用来查

举例讲解C语言对归并排序算法的基础使用_C 语言

基础概念百度百科是这么描述归并排序的: 归并操作(merge),也叫归并算法,指的是将两个已经排序的序列合并成一个序列的操作. 设有数列 {6,202,100,301,38,8,1} 初始状态: [6] [202] [100] [301] [38] [8] [1] 比较次数  i=1 [6 202 ] [ 100 301] [ 8 38] [ 1 ] 3 i=2 [ 6 100 202 301 ] [ 1 8 38 ] 4 i=3 [ 1 6 8 38 100 202 301 ] 4 总计: 1

超级给力的JavaScript的React框架入门教程_基础知识

 React 是 Facebook 里一群牛 X 的码农折腾出的牛X的框架. 实现了一个虚拟 DOM,用 DOM 的方式将需要的组件秒加,用不着的秒删.React 扮演着 MVC 结构中 V 的角色, 不过你要是 Flux 搭配使用, 你就有一个很牛X的能让轻松让 M 和 V 同步的框架了,Flux 的事以后再说~组件们 在 React 中,你可以创建一个有特殊功能的组件,这在 HTML 元素里你是打着灯笼也找不到的,比如这个教程里的下拉导航.每个组件都有自己的地盘(scope),所以我们定义一

一贴学会PHP 新手入门教程_php基础

一贴学会PHP 系统长度32678字节,除去标点,还可以打一万字,如果写满,那也不短了.但是-本着,变态的简单,流畅到底的适合广大浮躁的MJJ们浏览的原则,我尽量精简的有效的实用的阐述PHP的学习之道. 本文适宜受众:熟练HTML,但是对PHP等动态语言一无所知,却在用dedecms或discuz等php程序的人.当然,还要你有想学PHP的兴趣.毕竟纵使再简单也需要学习的动力,兴趣无疑是最好的.不熟悉电脑操作,绝对路径,相对路径等东西的请上火星. 前提准备:态度:认真,细心,不浮躁.时间:仅需两

Go语言入门教程之基础语法快速入门_Golang

Go语言是一个开源的,为创建简单的,快速的,可靠的软件而设计的语言. Go语言实(示)例教程,通过过实例加注释的方式来介绍Go语言的用法. Hello World 第一个程序会输出"hello world"消息.源代码如下: 复制代码 代码如下: package main import "fmt" func main() {     fmt.Println("hello world") } //通过go run来运行Go程序 $ go run h

vue.js入门教程之基础语法小结_javascript技巧

前言 Vue.js是一个数据驱动的web界面库.Vue.js只聚焦于视图层,可以很容易的和其他库整合.代码压缩后只有24kb. 以下代码是Vue.js最简单的例子, 当 input 中的内容变化时,p 节点的内容会跟着变化. <!-- html --> <div id="demo"> <p>{{message}}</p> <input v-model="message"> </div> new

phpMyAdmin下载、安装和使用入门教程_php基础

对于PHP的逐渐流行,我们有目共睹:无论是BLOG程序中的WordPress,还是CMS程序中的DEDECMS,还是BBS程序中的Discuz!,都可谓经典. 随着程序语言选择的不同,WEB应用所使用的数据库也发生了变化,转而向MySQL阵营学习.其中对于phpMyAdmin的学习则必不可少. phpMyAdmin(简称PMA)是一个用PHP编写的,可以通过互联网在线控制和操作MySQL.他是众多MySQL管理员和网站管理员的首选数据库维护工具,通过phpMyAdmin可以完全对MySQL数据库

来自PHP.NET的入门教程_php基础

PHP是一种创建动态网页的工具.嵌入PHP代码的网页就像普通的HTML文件一样,你可以使用任何你喜欢的编辑器对它进行编辑.本教程的所描述的对象是PHP 3.0 . 我需要什么? 在本教程中,我们假设你的服务器已经支持PHP,并且所有的文件都以.php3作为扩展名.在大部分服务器上,这是PHP文件的缺省扩展名,你可以向你的管理员确认一下.如果你的服务器支持PHP,这就足够了.很简单,建立你的PHP文件并且把它放到你的服务器上,那么服务器将会巧妙的对它进行处理.这不需要编译什么,也不需要安装什么额外