0

0

cocos2d-x 2.0.4 学习笔记(一)场景、层、精灵

php中文网

php中文网

发布时间:2016-06-07 15:43:34

|

1337人浏览过

|

来源于php中文网

原创

(自学用,不是什么大师,有不对的地方欢迎交流) 注意:本人这里主要讲的是框架搭建,从框架到细节,注重框架的讲解,其他知识等需要自己去查询。如果这个框架思想你领悟了 ,学起来会很快,而且自己知道需要什么,该学什么。带着需求去学,比学完再去应用

         (自学用,不是什么大师,有不对的地方欢迎交流)

       注意:本人这里主要讲的是框架搭建,从框架到细节,注重框架的讲解,其他知识等需要自己去查询。如果这个框架思想你领悟了 ,学起来会很快,而且自己知道需要什么,该学什么。带着需求去学,比学完再去应用的方式,掌握知识的速度要快的多,个人见解。

        场景就是一段完整有意义的舞台,是一类内容的集合。比如做游戏的时候,有游戏场景,有商店场景。当然你可以将商店作为游戏场景的一层,但是单一场景的层多了,势必会影响运行速度和增加内存的使用。

       如果一个游戏场景有许多对象(cocos2d中称为精灵)组成,比如背景图片,玩家角色,按钮等,那么就是将精灵按照不同的目的进行分组。

       用层分组的好处:

        1.可以整体操作当前层上的所有对象,不需要关心每个如何变化,比如渐变,消失等

        2.层有点像PhotoShop中的层,不同的层相互之间有遮挡关系。

       继续上面的例子,现在我将背景图片放一层 ,玩家角色放一层,控制放一层。玩家在走动的时候肯定要遮挡你后面的背景,当然有好几排房子那种,你可以在角色层上面添加景物层 ,相互遮挡。最上面放控制层,但你安静音,暂停的时候你不希望角色挡住了按钮,使你不能静音,暂停吧?如图1所示:(作图工具为OmniGrafflePro-5.4.x for mac)

        cocos2d-x 2.0.4 学习笔记(一)场景、层、精灵

图1

那么这些层所在的容器就是场景,场景就是一个抽象的假象空间,存放层和精灵。


场景创建:

           Loading.h

             cocos2d-x 2.0.4 学习笔记(一)场景、层、精灵

     只有

static cocos2d::CCSence *scene();
有用其他两句是用于初始化层init()和创建层(CRETE_FUNC(Loading))的。在实际用的过程中经常自己写自己的初始化和创建函数。


先来创建一个层,场景本身是空的什么都没有。所以加载一个层来放东西。

LoadingScenery.h //用于放景物

cocos2d-x 2.0.4 学习笔记(一)场景、层、精灵

static LoadingScenery *createLS();
这句话是公共的,对外的接口,当场景加载这个层的时候,必须通过这个函数来生成层对象。CreateLS()内部会通过LSinit();函数对对象进行初始化。

当此函数调用的时候会返回一个已经初始化完的层对象。

自己写create函数名字可以自定,内容可以自己根据需要写,且可以传参数。而CREATE_FUNC虽然方便但相对死板。

【插曲】爸爸送来了好吃的。。。( ⊙o⊙ )哇 ,切糕~~好吃好吃cocos2d-x 2.0.4 学习笔记(一)场景、层、精灵

bool LSinit();
这个函数主要用于初始化层加载精灵等

层最基本需呀这两个函数。



LoadingScenery.cpp

通过Command+control+方向下键切换到.cpp实现文件中

先来看createLs函数

cocos2d-x 2.0.4 学习笔记(一)场景、层、精灵

注意第一句LOCATION_INFORMATION是我自己写的一个用于显示当前执行段是在哪个文件哪个函数第几行,便于调试定位用的

等同于CCLog("-- %s -- %s -- %d", __FILE__,__FUNC__,__LINE);当然因为__FILE__会显示出完整物理路径,这是我不需要的我只要是哪个文件就行。所以做了写改变,最后再说。

AliGenie 天猫精灵开放平台
AliGenie 天猫精灵开放平台

天猫精灵开放平台

下载

这个函数主要是,创建一个对象,如果创建且初始化成功则返回,否则报错。注意CC_SAFE_DELETE这个宏多了层防护,具体自己查看研究。


下面来看初始化函数

cocos2d-x 2.0.4 学习笔记(一)场景、层、精灵

最后,将这个层加载到刚才创建的场景中。

Loading.cpp//场景实现文件

cocos2d-x 2.0.4 学习笔记(一)场景、层、精灵

其中

sence->addChild(layerScenery,1,10);
可以改为:sence->addChild(layerScenery);
具体1,10参数什么意义,自己看addChild函数定义说明,或者查资料。

当然现在还不能运行,因为你还没有把这个场景放到屏幕上,下面我们就把这个放到屏幕上,需要修改下

cocos2d-x 2.0.4 学习笔记(一)场景、层、精灵

OK ,到此就能运行到屏幕上了,结果:

cocos2d-x 2.0.4 学习笔记(一)场景、层、精灵

为什么是竖屏?答案自己找吧。

总结:学东西最好先学框架,不要坠入细节,否则会很迷茫。编程就像搭积木一样,有些东西开始不理解那就固定下来,之后理解就好

比如:


        我要写个游戏,先找个场景吧,那就创建一个C ++ 类文件起个名字

cocos2d-x 2.0.4 学习笔记(一)场景、层、精灵

游戏场景建好了,我需要个层来显示东西

   cocos2d-x 2.0.4 学习笔记(一)场景、层、精灵         

加个背景层,首先建立一个C++ 类文件

cocos2d-x 2.0.4 学习笔记(一)场景、层、精灵

然后通过

Game.cpp的 Scene函数加载下,就可以了,如果想多层如此循环操作,后加载层会遮盖先加载层,也可以通过addChild函数进行修改层的顺序和标号

好了 ,假设现在创建好了 几个场景 ,怎么切换呢?

cocos2d-x 2.0.4 学习笔记(一)场景、层、精灵

这就看导演了 CCDirector 。。。一旦加上导演,场景之间可以切换,场景上还有节目,那么一个游戏的骨架就有了,里面你添什么东西就是什么游戏 



相关专题

更多
PPT交互图表教程大全
PPT交互图表教程大全

本专题整合了PPT交互图表相关教程汇总,阅读专题下面的文章了解更多详细内容。

39

2026.01.12

Java 项目构建与依赖管理(Maven / Gradle)
Java 项目构建与依赖管理(Maven / Gradle)

本专题系统讲解 Java 项目构建与依赖管理的完整体系,重点覆盖 Maven 与 Gradle 的核心概念、项目生命周期、依赖冲突解决、多模块项目管理、构建加速与版本发布规范。通过真实项目结构示例,帮助学习者掌握 从零搭建、维护到发布 Java 工程的标准化流程,提升在实际团队开发中的工程能力与协作效率。

19

2026.01.12

c++主流开发框架汇总
c++主流开发框架汇总

本专题整合了c++开发框架推荐,阅读专题下面的文章了解更多详细内容。

134

2026.01.09

c++框架学习教程汇总
c++框架学习教程汇总

本专题整合了c++框架学习教程汇总,阅读专题下面的文章了解更多详细内容。

66

2026.01.09

学python好用的网站推荐
学python好用的网站推荐

本专题整合了python学习教程汇总,阅读专题下面的文章了解更多详细内容。

139

2026.01.09

学python网站汇总
学python网站汇总

本专题整合了学python网站汇总,阅读专题下面的文章了解更多详细内容。

13

2026.01.09

python学习网站
python学习网站

本专题整合了python学习相关推荐汇总,阅读专题下面的文章了解更多详细内容。

19

2026.01.09

俄罗斯手机浏览器地址汇总
俄罗斯手机浏览器地址汇总

汇总俄罗斯Yandex手机浏览器官方网址入口,涵盖国际版与俄语版,适配移动端访问,一键直达搜索、地图、新闻等核心服务。

104

2026.01.09

漫蛙稳定版地址大全
漫蛙稳定版地址大全

漫蛙稳定版地址大全汇总最新可用入口,包含漫蛙manwa漫画防走失官网链接,确保用户随时畅读海量正版漫画资源,建议收藏备用,避免因域名变动无法访问。

549

2026.01.09

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7万人学习

Webpack4.x---十天技能课堂
Webpack4.x---十天技能课堂

共20课时 | 1.4万人学习

Bootstrap4.x---十天精品课堂
Bootstrap4.x---十天精品课堂

共22课时 | 1.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号