Cocos2d-x学习笔记(九)场景切换
这里只介绍两个简单的两个场景相互切换的方法。
void pushScene(Scene *sn)和void popScene(Scene *sn)是一对。前者将当前场景放入到场景堆栈中,并切换到下一个场景;而后者则是回到堆栈顶的场景(一般是上一个场景)。另外,这里的堆栈的原型是Vector<Scene*>。通常,他们都是通过事件回调来触发的。
下边的代码是将当前场景压入堆栈,并自动切换到下一个场景(其实,实质是在回到函数里创建了一个新场景^_^):
MenuItemImage *settingMenuItem = MenuItemImage::create("menu/setting-up.png", "menu/setting-down.png", CC_CALLBACK_1(HelloWorld::menuItemSettingCallback, this));
void HelloWorld::menuItemSettingCallback(Ref *pSender)
{
auto sc = Setting::createScene();
Director::getInstance()->pushScene(sc);
}
下边的代码是将栈顶场景出站,并恢复栈顶场景:
auto okMenuItem = MenuItemImage::create("menu2/ok-down.png", "menu2/ok-up.png", CC_CALLBACK_1(Setting::menuOkCallback, this));
void Setting::menuOkCallback(Ref *pSender)
{
Director::getInstance()->popScene();
}
运行结果:
图1 HelloWorld场景
图2 Setting场景
点击红色箭头所示的button,就会就行两个场景之间来回的切换。
回顾代码,我们会发现,一直以来,我们只是在子类化Layer,而并未子类化场景类。这主要是由于场景的生命周期是通过层的生命周期反应出来的。理解了这点就理解了层与场景之间的关系。
Cocos2d-x学习笔记(九)场景切换的更多相关文章
- Cocos2dx 学习笔记整理----场景切换
据说Cocos2dx场景切换的方法有32种:cocos2dx 常见的32种切换场景的动画 无需一一求证,只需要知道切换场景需要怎么做就行了. 作为导演CCDirector,切换场景的事情当然归它管了. ...
- 多线程学习笔记九之ThreadLocal
目录 多线程学习笔记九之ThreadLocal 简介 类结构 源码分析 ThreadLocalMap set(T value) get() remove() 为什么ThreadLocalMap的键是W ...
- MDX导航结构层次:《Microsoft SQL Server 2008 MDX Step by Step》学习笔记九
<Microsoft SQL Server 2008 MDX Step by Step>学习笔记九:导航结构层次 SQL Server 2008中SQL应用系列及BI笔记系列--目录索 ...
- python3.4学习笔记(九) Python GUI桌面应用开发工具选择
python3.4学习笔记(九) Python GUI桌面应用开发工具选择 Python GUI开发工具选择 - WEB开发者http://www.admin10000.com/document/96 ...
- Go语言学习笔记九: 指针
Go语言学习笔记九: 指针 指针的概念是当时学C语言时了解的.Go语言的指针感觉与C语言的没啥不同. 指针定义与使用 指针变量是保存内存地址的变量.其他变量保存的是数值,而指针变量保存的是内存地址.这 ...
- go微服务框架kratos学习笔记九(kratos 全链路追踪 zipkin)
目录 go微服务框架kratos学习笔记九(kratos 全链路追踪 zipkin) zipkin使用demo 数据持久化 go微服务框架kratos学习笔记九(kratos 全链路追踪 zipkin ...
- Python学习笔记九
Python学习笔记之九 为什么要有操作系统 管理硬件,提供接口. 管理调度进程,并且将多个进程对硬件的竞争变得有序. 操作系统发展史 第一代计算机:真空管和穿孔卡片 没有操作系统,所有的程序设计直接 ...
- vue学习笔记(九)vue-cli中的组件通信
前言 在上一篇博客vue学习笔记(八)组件校验&通信中,我们学会了vue中组件的校验和父组件向子组件传递信息以及子组件通知父组件(父子组件通信),上一篇博客也提到那是对组件内容的刚刚开始,而本 ...
- C#线程学习笔记九:async & await入门二
一.异步方法返回类型 只能返回3种类型(void.Task和Task<T>). 1.1.void返回类型:调用方法执行异步方法,但又不需要做进一步的交互. class Program { ...
- STM32学习笔记(九) 外部中断,待机模式和事件唤醒
学会知识只需要不段的积累和提高,但是如何将知识系统的讲解出来就需要深入的认知和系统的了解.外部中断和事件学习难度并不高,不过涉及到STM32的电源控制部分,还是值得认真了解的,在本文中我将以实际代码为 ...
随机推荐
- Scala里面如何使用枚举
枚举通常用来定义已知数量的常量,比如月份,星期,季节等等,用过java的人都知道定义枚举的关键字是enum,在scala里面和java有所不同,来看一个完整的例子定义: object EnumTest ...
- MySQL IFNULL()函数用法MySQL
用法说明:IFNULL(expr1,expr2) 如果 expr1 不是 NULL,IFNULL() 返回 expr1,否则它返回 expr2. IFNULL()返回一个数字或字符串值,取决于它被使用 ...
- openstack 部署笔记--基本环境准备
基础信息 配置:centos7.3 8G内存 4核处理器 单网卡 控制节点IP:192.168.15.243 计算节点IP:192.168.15.238 openstack 版本:ocata 配置信 ...
- MySQL--教程
登入登出 首先启动服务,然后 mysql -u root -p 命令输入密码登入. mysql退出三种方法:mysql > exit;mysql > quit;mysql > \q;
- A+B+C问题
这是一个非常简单的题目,意在考察你编程的基础能力.千万别想难了哦.输入为一行,包括了用空格分隔的三个整数 AA.BB.CC(数据范围均在-40−40 ~ 4040 之间).输出为一行,为“A+B+CA ...
- vmware tool安装
https://www.vmware.com/support/ws55/doc/ws_newguest_tools_linux.html VMware Workstation 5.5 Features ...
- 33. Search in Rotated Sorted Array(二分查找)
Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e. ...
- MySQL从删库到跑路_高级(三)——视图
作者:天山老妖S 链接:http://blog.51cto.com/9291927 一.视图简介 1.视图简介 视图是由SELECT查询语句所定义的一个虚拟表,是查看数据的一种非常有效的方式.视图包含 ...
- python getmtime() 最近修改文件内容的时间
import time import os def mm(): file_name = '1.txt' file_times_modified = time.localtime(os.path.get ...
- 微信分享缩略图,如何增加微信朋友圈分享链接的小图片? facebook、google+、twitter等分享的标签
微信分享缩略图 如何增加微信朋友圈分享链接的小图片?在网页的头部<head>标签内加上以下代码,图片路径自行修改.<head><div id='wx_pic' style ...