Cocos2D-X初学者基础入门教程之一

    作者:课课家教育更新于: 2019-03-28 15:29:11

      很多Cocos2d-x初学者在学习Cocos2D-X的时候,都感到很迷茫不知道先学哪里,快来看看这篇教程吧,本系列教程将带你三步摆脱初学者称号。

      说起HelloWorld,我其实还是比较迷茫,因为从一开始接触的Cocos2d-x 1.04到现在Cocos2d-x 3.3Final我都没有能很细致的去分析其核心底层,所以初学的同学,我建议先别去触碰那块,会让你晕很久,所以就由简入深的慢慢去学吧,那么我就简单的讲讲我所熟悉的Cocos2d-x HelloWorld。

      本篇所用的Cocos2d-x版本为:Cocos2d-x 3.2

      当我们配置好Cocos2d-x相关的部署后,我们一般都会创立第一个测试项目,那么我们第一所见是什么?HelloWorld!是的,在我学习的时候也是一样的,那么我们看看HelloWorld带给我们的是什么呢?

     Cocos2D-X初学者基础入门教程之一_Cocos2D-X基础_Cocos2D-X游戏开发_Cocos2D-X教程_课课家

     

      总体上来讲,通过HelloWorld我们遇到了7个小伙伴:Scene、Layer、Menu、Sprite、LabelTTF、MenuItemImage、Ref。那么我就来说说在我眼里这些小伙伴都是干嘛的。

      先来说说他们可不告人的关系(嘿嘿嘿…)

      Scene

      我理解为就是地球,Layer呢就是地球上一个个的大陆或者海洋、国家之类的可以区分的,当然了苍井空是世界的(嘿嘿嘿…),Menu、Sprite、LabelTTF、MenuItemImage、Ref这些等等都是地球上的生物或者建筑。

      如果说Scene是宇宙的话,那么Layer就是一颗颗星球,Menu、Sprite、LabelTTF、MenuItemImage、Ref等等都是这个星球的组成部分。这么说的话,我想大家都能有一些概念了,那么接下来,Scene到底是什么?

      粗浅的讲Scene就是一个场景,深入点讲Scene是渲染树(以后会有详细的介绍)。

      我们所做的Cocos2d项目,只能有一个主场景,哪怕你场景再多,也只能在当前场景上做事情,否则必须要切换当前场景。(NotificationNode以后再说),那么也就是说,我们的游戏只能允许一个场景在导演类上跑。也就是这点导致我在初学的时候养成了把Scene当成主管理器来使用的习惯,手动实现切换不同Layer达到我想要的界面效果。官方给我们demo基本都是执行的切换场景操作,但是因为上述所说养成了习惯就不好改了,这块大家根据自己的理解运用就行了,但是还是要根据不同的项目,不同的经历来决定的。

      在我的理解上,官方提供的demo上的Scene可以这样玩。创建一个Scene来添加不同的Layer进行或者可以根据不同的Scene创建不同的Layer(好像是废话哈),就好比HelloWorld来说我们可以看见

      // layer 图层 是一个自动释放对象

      auto layer = HelloWorld::create();

      当前HelloWorld既是个场景同时也是个图层。

      为什么说是场景,因为HelloWorld类实现了静态单例创建场景接口,以供Director导演类加载。

      详细代码我们可以通过AppDelegate.cpp文件内查找到

      

      为什么说是图层,因为HelloWorld本身是继承Layer的

      只不过因为实现了 静态单例创建场景的方法 使得我们的HelloWorld可以作为场景使用

      class HelloWorld : public cocos2d::Layer // 这这请看这里

      {

      }

      在createScene方法中我们看到

      // layer 图层 是一个自动释放对象

      auto layer = HelloWorld::create();

      我们的这个场景里面加载了HelloWorld图层。

      那么举一反三,是不是我们也可以单独创建一个场景来作为管理器,通过添加不同的Layer类来实现呢?于是乎我就养成了把Scene当初管理器的习惯。

      好了Scene简单的说完了,再来说说Layer

      什么是Layer?

      Layer刚才我们已经通过文字描述粗浅的意识到是什么了,就像上述所说,Scene是太阳系的话,Layer就是地球,我们就是生活在地球上的Sprite精灵等,我们已经拥有了太阳系(Scene)是不是必须要有地球、太阳之类的Layer才能存活呢。那么Layer就是承载着Menu、Sprite、LabelTTF等这些小伙伴必不可少的土壤,也因为承载着这么多的小伙伴,所以Layer才更会有价值。

      什么是Sprite等?

      Sprite就是Cocos2d-x提供给我们最为基础的几个元素中的一个,它就好比是生活在地球上的人类、动画、植物、建筑等等的东西。

      在学习Cocos2d-x的时候,我建议同学们先从最基础的开始了解,就好比说Sprite,它有多少种创建方式,每种创建方式所带来的效果是什么,可以给我们带来哪些启发,然后一点点的继续Menu、Layer、Scene…等等的,当你对他们再熟悉不过的时候,它们就是你的搭建游戏世界的基础,为你的游戏提供无限的精彩

课课家教育

未登录