关于切换scene

void ActionManagerTest::restartCallback(Ref* sender)
{
auto s = new (std::nothrow) ActionManagerTestScene();
s->addChild(restartActionManagerAction());

Director::getInstance()->replaceScene(s);
s->release();
}

切换完成后自动release

replaceScene(即不适用动画效果)可以轻松的完成场景的切换,释放掉旧的场景,加载新场景,几乎不需要时间的过渡,瞬间完成

切换全屏场景的时候最好使用replaceScene而不是pushScene。

因为pushScene并不会销毁前一个scene,仅仅是将后一个scene按照堆栈的方式加入到前一个scene的上面。如果自身代码中内存管理写的不好的,利用pushScene很难发现该方面的问题,一旦崩溃定位都很难定位。replaceScene可以及早的将隐含的问题给暴露出来。

时间: 2024-08-10 10:26:16

关于切换scene的相关文章

五毛的cocos2d-x学习笔记03-控件

VS2013快捷键:注释,Ctrl+K+C:取消注释Ctrl+K+U.都是单行.要实现多行注释与取消注释,就选中多行.run方法调用了AppDelegate的applicationDidFinishLaunching方法要调整窗体的大小的话,在AppDelegate.cpp的 auto director = Director::getInstance(); auto glview = director->getOpenGLView(); if(!glview) { glview = GLView

director入门

director是导演,功能用于切换scene 只有在第一次时使用  runWithScene(scene) 以后使用replaceScene() 然后用HelloWorldScene.cpp中的createScene()创建场景,并返回 在创建场景时创建一个层,并把层添加进场景中 然后将游戏的元素添加到层中 create()方法是cocos2d的内存管理机制,可以自动释放 可以通过CREATE_FUNC(<#__TYPE__#>)这个方法快速创建自己的create()方法

Cocos2dx 3.2 之实现精灵图片放大功能

原文地址 http://blog.csdn.net/jhonlight/article/details/38408351 今天一个群友问我: 我Scene里放置一个Layer,Layer盛放一张图片,即背景图片,我想更换这张图片,而且要求带有系统提供的切换Scene 淡入淡出的效果,于是我用Director类的切换用系统提供的切换动画包装的scene,但是效果是整个scene都被切换了,而我想要的是只有背景变化,其余的不变. 大家都知道,这样做当然不可以,Director(导演)的切换会把制定的

Cocos2d视频教程收录

锋手游开发培训-Cocos2D-X-视频教程合集  (    )   1   千锋Cocos2D-X游戏视频教程-第01讲-Cocos2D-X介绍 2   千锋Cocos2D-X游戏视频教程-第02讲-Cocos2D-X游戏安装过程和创建项目 3   千锋Cocos2D-X游戏视频教程-第03讲-Cocos2D-X启动流程-OC部分 4   千锋Cocos2D-X游戏视频教程-第04讲-Cocos2D-X启动流程-EAGLView解释 5   千锋Cocos2D-X游戏视频教程-第05讲-Coc

cocos2dx实现全局游戏公告

最刚开始分平台调用原生的提示,但是由于项目之后要显示的内容变的复杂,只好研究一下全局的游戏公告该怎么显示了. 直接addChild的是行不通的,或者处理起来比较繁琐,因为每次切换scene都会清空. 研究了一下cocos2dx的渲染机制. 入口: CCApplication::sharedApplication()->run() CCDirecor会周期执行一个mainLoop int CCApplication::run() { PVRFrameEnableControlWindow(fals

Cocos2dx引擎9-注册事件监听器

1.事件处理方法 下面为普通的点击事件监听器(下面简称EventListener)注册部分:注册EventListener需要实现onTouchBegan方法,可以实现onTouchEnded.onTouchCancelled方法,当然如果你想监听触控(鼠标)移动(拖动)监听器需要实现onTouchMoved方法,这里使用Lambda方式简单实现了onTouchBegin方法: auto event =EventListenerTouchOneByOne::create(); event->on

浅谈白鹭Egret

浅谈白鹭Egret 最近在做一个移动项目,技术选型的时候接触到了白鹭,简单了解了之后觉得挺合适的,最终就选择了这个引擎. 为什么会选择白鹭引擎呢? 我看上他主要有一下几点: 1.egret的类结构以及继承关系跟as3的一模一样,很容易上手. 2.egret尽量保持每个类的属性方法跟as3的一样,这样子的话as3里的写法在egret里面同样使用. 3.egret已经有一套完整的工具,可以方便的开发html5应用,也可以方便的发布手机原生应用. 4.白鹭公司的积极努力,使得每隔一小段时间都会有新版本

Qt新渲染底层Scene Graph研究(一)

Qt新渲染底层Scene Graph研究(一) Qt 5提出了一个新的渲染底层,以替代Qt4时期的Graphics View,这个渲染底层就是Scene Graph.其实这个底层的作用和Open Scene Graph是差不多的,但是由于是不同的团队进行开发的,所以两者没有必然的联系.Scene Graph主要利用OpenGL ( ES )2的渲染优势,在2D和3D以非常流畅的速度进行渲染,满足日益增长的界面效果需求,同时Scene Graph预留了各种各样的接口,满足大家定义显示和渲染效果的需

8 cocos2dx添加场景切换效果,控制场景切换彻底完成之后再执行动画

 1 添加场景切换效果 供场景切换的类: CCTransitionJumpZoom CCTransitionProgressRadialCCW CCTransitionProgressRadialCW CCTransitionProgressHorizontal CCTransitionProgressVertical CCTransitionProgressInOut CCTransitionProgressOutIn CCTransitionCrossFade CCTransitionF