Cocos2d-x3.2场景切换


1

2

3

4

5

6

7

8

9

10

11

12

13

14

//GameScene.h

#include "cocos2d.h"

 

class GameScene : public cocos2d::Layer

{

public:

    static cocos2d::Scene* createScene();

 

    virtual bool init();

 

    void menuCallback(cocos2d::Ref* pSender);

     

    CREATE_FUNC(GameScene);

};

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

//GameScene.cpp

#include "GameScene.h"

#include "HelloWorldScene.h"

USING_NS_CC;

 

cocos2d::Scene* GameScene::createScene()

{

    auto scene = Scene::create();   //创建一个场景

    auto layer = GameScene::create();   //创建一个图层

    scene->addChild(layer);

    return scene;

}

 

//初始化当前的图层

bool GameScene::init()

{

    if(!Layer::init())      //初始化父类

        return false;

     

    //添加一个图片精灵

    Size visibleSize = Director::getInstance()->getVisibleSize();   //获取屏幕大小

    auto sprite1 = Sprite::create("game.png");

    sprite1->setAnchorPoint(Point::ZERO);    //设置锚点在左下角,原锚点位置在中心

    sprite1->setPosition(Point(0,0));

    //sprite1->setPosition(Point(visibleSize.width/2, visibleSize.height/2));

    this->addChild(sprite1);

     

     //添加一个菜单层,当点击按钮时调用menuCallback方法

    auto backItem = MenuItemImage::create(

                                           "CloseNormal.png",

                                           "CloseSelected.png",

                                           CC_CALLBACK_1(GameScene::menuCallback, this));

    backItem->setPosition(Point(visibleSize.width-50, 50));

     

    auto menu = Menu::create(backItem, NULL);

    menu->setPosition(Point::ZERO);

    this->addChild(menu, 1);

     

    return true;

}

 

//从游戏场景跳转到Hello场景

void GameScene::menuCallback(cocos2d::Ref* pSender)

{

    //方法一

//    auto scene = HelloWorld::createScene();     //创建一个新场景,因为原场景已删除

//    Director::getInstance()->replaceScene(scene);

    //方法二

    Director::getInstance()->popScene();        //原场景依然存在,直接出栈

}

时间: 2024-09-21 17:00:48

Cocos2d-x3.2场景切换的相关文章

cocos2d场景切换在安卓系统上显示黑屏了???

问题描述 cocos2d场景切换在安卓系统上显示黑屏了??? 整个project在vs下调试运行没有问题,场景动画后显示第二个场景,但生成apk文件后 安卓上主菜单能显示,点击开始按钮,场景过渡动画能显示出来,背景音乐也能播放, 但场景二显示不出来了,显示黑屏,求大神指点. 解决方案 http://www.cocoachina.com/bbs/read.php?tid=234748

Cocos2d-x-v3场景切换

Cocos2d-x-v3场景切换         cocos2d中场景的切换采用的是包装的思想,通过创建一个专场效果类,将需要专场的场景进行包装.代码示例如下: ? 1 2     auto * scene = OtherScene::createScene();//创建一个场景     Director::getInstance()->replaceScene(TransitionFlipX::create(1, scene));//进行包装切换,第一个参数为切换时间,第二个为切换的场景 引擎

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

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

Cocos2d-x UI开发之场景切换代码实例_C 语言

cocos2d-x中的场景切换是通过导演类调用相应的方法完成的,可以通过CCDirector::sharedDirector()->replaceScene()方法切换场景,参数是要切换的新场景,这种方法会释放掉旧的场景.通过pushScene()切换则是将旧的场景压入到栈中,以便通过popScene()函数出栈,继续运行原场景.刚开始程序启动的时候通过runWithScene()运行一个新的场景.下面通过代码来说明.单击下图可以查看效果. 这次代码一共建立了俩个场景,一个是原来的hellowo

Unity3d之无缝地形场景切换–解决方法和代码

当我们开发一个大型项目的时候-会遇到这样的问题(地形场景的切换)这个只是字面意思-并不是重场景1的100 100 100坐标一下切换到场景2的100 100 100坐标这样的方法--(如果您以为是这样的技术和代码)那就不用看了.这个技术的实质意义是为了解决--多地形场景带来的大量内存占用问题-举个我的例子-我的测试项目是1013张绘制地形--在不用上面的技术情况下-占用了我4.2G的内存.想想下-如果一个大型的游戏直接这么运行的话)一下就会带来5-8G的内存占用--这个游戏还能玩吗? 下面让我们

React-native 尝鲜计划-场景切换(Navigator)

在上篇文章<react-native 尝鲜计划-环境搭建>中讲述了react-native 的环境搭建,并初始化了 react-native 的第一个项目.如果你已经完成了上一篇文章的学习,并且成功调试第一个 "hello world" 项目,你已成功地经迈出第一步,接下来的学习就会顺利得多.在我成功调试出第一个项目之后,连蒙带差的走读了下原生代码和 index.android.js 代码,脑海里有很多疑问,第一个疑问就是:react-native 如何做多个页面跳转的?相

Cocos2d-x场景切换相关函数介绍

场景切换是通过导演类Director实现的其中的相关函数如下 runWithScene(Scene* scene).该函数可以运行场景.只能在启动第一个场景时候调用该函数.如果已经有一个场景运行情况下则不能调用该函数. replaceScene(Scene* scene).切换到下一个场景.用一个新的场景替换当前场景当前场景被终端释放. pushScene(Scene* scene).切换到下一个场景.将当前场景挂起放入到场景堆栈中然后再切换到下一个场景中. void popScene().与p

Cocos2d-x Lua中多场景切换生命周期

在多个场景切换时候,场景的生命周期会更加复杂.这一节我们介绍一下场景切换生命周期.多个场景切换时候分为几种情况:情况1,使用pushScene函数从实现GameScene场景进入SettingScene场景.情况2,使用replaceScene函数实现从GameScene场景进入SettingScene场景.情况3,使用popScene函数从实现SettingScene场景回到GameScene场景.我们参考GameScene重写SettingScene的中几个生命周期函数,代码如下: func

Cocos2d-x多场景切换生命周期

在多个场景切换时候场景的生命周期会更加复杂.这一节我们介绍一下场景切换生命周期. 多个场景切换时候分为几种情况 情况1使用pushScene函数从实现HelloWorld场景进入Setting场景. 情况2使用replaceScene函数实现从HelloWorld场景进入Setting场景. 情况3使用popScene函数从实现Setting场景回到HelloWorld场景.   我们参考HelloWorld重写Setting层的中几个生命周期函数代码如下 bool Setting::init(

【Swift】SpriteKit开发iOS游戏——场景切换

前言 Swift是个很不错的语言,苹果官方提供的游戏开发框架也很不错. 作为一个游戏来讲,里面的场景Scene肯定不止一个,所以需要切换场景 代码 代码从创建的时候的demo开始,demo的创建路径是 开始我们会有一个场景文件GameScene 所以我们要创建一个新的场景文件NextScene,内容参考demo给的GameScene,这里不做展开,QAQ 核心跳转的代码很简单 let 下一个场景=NextScene() let doors=SKTransition.doorsOpenVertic