CCScene简介

CCScene is a subclass of CCNode that is used only as an abstract concept.CCScene an CCNode are almost identical with the difference that CCScene has it's anchor point (by default) at the center of the screen.For the moment CCScene has no other logic than that, but in future releases it might have additional logic.It is a good practice to use and CCScene as the parent of all your nodes.
上面是 cocos2d-x 官网解释关于 CCScene 解释,Scene 主要是游戏中的场景,继承与 CCNode 也是一个 Node(节点),可以理解为玩游戏中每个页面,每一个页面中又有不同的节点,例如任务,怪兽,子弹,主角等,上面也建议我们用 CCScene 作为游戏画面中的容器(parent),包括其他所有节点。

CCScene用法

主要是自己创建场景,使用 CCDirector::replaceScene(**) 和 CCDirector::pushScene(**) 2个方法来更换当前场景
在 win32 include 中新建 SceneTest.h 头文件,头文件定义如下,(#define 为了防止重复编译)
#ifndef __SCENETEST__
#define __SCENETEST__#include "cocos2d.h"
#include "SimpleAudioEngine.h"class Sceneclass : cocos2d::CCLayerColor {
public:Sceneclass();~Sceneclass();// 初始化scenestatic cocos2d::CCScene* scene();virtual void onEnter();// 菜单点击回调函数void popScene(cocos2d::CCObject* sender);void pushScene(cocos2d::CCObject* sener);void replaceScene(cocos2d::CCObject* sender);// 添加菜单void addMenu(CCLayer* layer);
};#endif

CDirector::sharedDirector()->pushScene 方法

pushScene 把当前新建的 Scene 加入到项目 scene 堆栈,并且显示到当前页面,之前的 scene 并不会消灭,如果使用 popScene 就把栈顶出栈,恢复到之前 scene

CCDirector::sharedDirector()->replaceScene 方法

replaceScene 把当前 scene 替换掉。
下面是实现的代码:
#include "SceneTest.h"using namespace cocos2d;CCScene* Sceneclass::scene()
{CCScene* scene = CCScene::create();Sceneclass* layer = new Sceneclass();layer->autorelease();scene->addChild(layer);return scene;
}Sceneclass::Sceneclass()
{// 记得初始化CCLayerColor::initWithColor(ccc4(255, 255, 255, 255));
}void Sceneclass::onEnter()
{// 初始化父类CCLayerColor::onEnter();this->addMenu(this);CCLog("onEnter");
}void Sceneclass::popScene(CCObject* sender)
{// 弹出当前scene堆栈最顶sceneCCDirector::sharedDirector()->popScene();CCLog("popScene");
}void Sceneclass::pushScene(CCObject* sender)
{CCLog("pushScene");CCScene* scene = CCScene::create();Sceneclass* layer = new Sceneclass();layer->autorelease();layer->setColor(ccc3(76, 67, 76));// 初始化菜单this->addMenu(layer);scene->addChild(layer);// 把当前scene压入到scene堆栈,之前一个并没有清楚CCDirector::sharedDirector()->pushScene(scene);
}void Sceneclass::replaceScene(CCObject* sender)
{CCScene* scene = CCScene::create();Sceneclass* layer = new Sceneclass();layer->autorelease();layer->setColor(ccc3(233, 23, 45));// 初始化菜单this->addMenu(layer);scene->addChild(layer);// 替换当前scene,清除前一个sceneCCDirector::sharedDirector()->replaceScene(scene);CCLog("replaceScene");
}void Sceneclass::addMenu(CCLayer* layer)
{// 添加菜单CCMenuItemFont* item1 = CCMenuItemFont::create("popScene", this, menu_selector(Sceneclass::popScene));CCMenuItemFont* item2 = CCMenuItemFont::create("pushScene", this, menu_selector(Sceneclass::pushScene));CCMenuItemFont* item3 = CCMenuItemFont::create("replaceScene", this, menu_selector(Sceneclass::replaceScene));CCMenu* menu = CCMenu::create(item1, item2, item3, NULL);menu->alignItemsVertically();menu->setColor(ccc3(0, 0, 0));layer->addChild(menu, 1);
}Sceneclass::~Sceneclass()
{}

效果:

[cocos2d-x 学习] Scene(场景)学习相关推荐

  1. 基于深度学习的场景分割算法研究综述

    基于深度学习的场景分割算法研究综述 人工智能技术与咨询 来自<计算机研究与发展> ,作者张 蕊等 摘 要 场景分割的目标是判断场景图像中每个像素的类别.场景分割是计算机视觉领域重要的基本问 ...

  2. Blender创建三维教室场景学习教程 3D Classroom Environment Creation in Blender

    流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,48.0 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:3.73 GB 含课程文件 |时长:4h ...

  3. 在UE5创造一个多山的松树森林场景学习教程

    UE5游戏场景设计制作视频教程 大小解压后:4.37G 1920X1080 mp4 语言:英语+中英字幕(机译)时长:5小时 20分 课程获取:在UE5创造一个多山的松树森林场景学习教程

  4. Blender从头到尾创建一个低多边形场景学习教程

    Low Poly Landscapes – Blender Bite Sized Course 流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,48.0 KHz 语言:英 ...

  5. 深度学习实现场景字符识别模型|代码干货

    作者|李秋键 出品|AI科技大本营(ID:rgznai100) # 前言 # 文字是人从日常交流中语音中演化出来,用来记录信息的重要工具.文字对于人类意义非凡,以中国为例,中国地大物博,各个地方的口音 ...

  6. felzenszwalb算法_学习图像场景解析的理论和应用(二)场景解析的经典算法分析之SLIC...

    2003 年,任晓峰教授在图像分割技术层面上提出了超像素分割的这一概念,是指具有相似纹理.颜色.亮度等特征的相邻像素构成的有一定视觉意义的不规则像素块.它利用像素之间特征的相似性将像素分组,用少量的超 ...

  7. 基于深度学习、强化学习、开源RASA对话引擎的多场景对话机器人

    向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程   公众号:datayx Chatbot_CN 是一个基于第三代对话系统的多轮对话机器人项目,旨在于开发一个结合规则系统 ...

  8. 推荐搜索系统中关于多场景学习的常见方法

    今天的博文主要参考了以下材料: 1 2020年阿里<Scenario-aware and Mutual-based approach for Multi-scenario Recommendat ...

  9. 什么是迁移学习?迁移学习的场景与应用

    作者:机器之心 链接:https://www.zhihu.com/question/41979241/answer/208177153 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业 ...

最新文章

  1. 【JVM调优系列】----NewRatio与SurvivorRatio
  2. 浅析大规模DDOS防御架构:应对T级攻防
  3. 大班运用计算机教学案例,幼儿园大班体验课程教学案例
  4. 简单探索MNIST(Softmax回归和两层CNN)-Tensorflow学习
  5. 【SpringBoot高级】SpringBoot整合篇
  6. maven2打包不同jdk版本的包
  7. 微信授权,重定向两次
  8. python写鼠标宏_最全Pycharm教程(24)——Pycharm编辑器功能之宏定义
  9. js css自动幻灯片切换,非常漂亮的JS+CSS图片幻灯切换特效
  10. 计算机网络课设中:cisco关于nat的静态配置
  11. 【.Net】asp.net 把图片从CMYK印刷模式转换为RGB原色模式
  12. 闲谈绩效考核——来自项目管理群的讨论
  13. flv网页播放器开源代码
  14. 投入产出表matlab,投入产出分析投入产出表.doc
  15. 一个“蝇量级” C 语言协程库 -- Protothreads
  16. JSP+MYSQL网上作业提交及管理系统
  17. 关于单选框以及复选框的css美化方法
  18. iOS 生成二维码 原生代码
  19. ACM-ICPC竞赛模板
  20. dingtalk 一个让钉钉服务端开发更简单的golang工具库

热门文章

  1. win8 myeclipse2013 下载地址,破解方法
  2. 为什么我们的自动化测试做不起来?
  3. 小米4c手机显示无服务器,小米4c的出现让小米2S用户终于找到换手机的理由!
  4. 北上广深自如合租房图鉴
  5. 男生学护理和学计算机哪个好,护理专业是做什么的 男生学护理发展好吗
  6. java vo的使用_java中的vo包
  7. 手机浏览器市场份额统计 和 UserAgent使用
  8. 设计模式-01-C-2020-08-11
  9. Python数据分析 ——Matplotlib数据可视化
  10. [看图说话-大学篇] 星际传说