Cocos2d-x3.2 场景的生命周期


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

//GameScene.h

 

#include "cocos2d.h"

 

USING_NS_CC;

 

class GameScene : public cocos2d::Layer

{

public:

    GameScene(void);

    ~GameScene(void);

     

    static cocos2d::Scene* createScene();

     

    virtual bool init();

     

    virtual void onEnter();

    virtual void onEnterTransitionDidFinish();

    virtual void onExit();

    virtual void onExitTransitionDidStart();

     

    void menuCallback(Ref* pSender);

     

    CREATE_FUNC(GameScene);

     

private:        //注意不能用auto关键字

    Size size;

    Sprite *sprite;

};

?


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

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

//GameScene.cpp

 

//cocos2d: GameScene constructor

//cocos2d: GameScene onEnter

//cocos2d: GameScene onEnterTransitionDidFinish

//cocos2d: HelloWorld constructor

//cocos2d: GameScene onExitTransitionDidStart

//cocos2d: GameScene onExit

//cocos2d: GameScene destructor

//cocos2d: HelloWorld onEnter

//cocos2d: HelloWorld onEnterTransitionDidFinish

//cocos2d: HelloWorld onExitTransitionDidStart

//cocos2d: HelloWorld onExit

//cocos2d: HelloWorld destructor

 

 

#include "GameScene.h"

#include "HelloWorldScene.h"

 

USING_NS_CC;

 

GameScene::GameScene(void)

{

    log("GameScene constructor");

}

 

GameScene::~GameScene(void)

{

    log("GameScene destructor");

}

 

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 = Director::getInstance()->getVisibleSize();

    //auto size = Director::getInstance()->getWinSize();

    //添加一个图片精灵

    sprite = Sprite::create("OnePiece_1.png");

    sprite->setPosition(Vec2(size.width/2, size.height/2));

    this->addChild(sprite);

     

    auto delay = DelayTime::create(2);

    //回调函数动作的使用!!!

    sprite->runAction(Sequence::create(delay, CallFuncN::create(CC_CALLBACK_1(GameScene::menuCallback, this)), NULL));

     

     

    return true;

}

 

void GameScene::menuCallback(Ref* pSender)

{

    Director::getInstance()->replaceScene(HelloWorld::createScene());

}

 

void GameScene::onEnter()

{

    Layer::onEnter();

    log("GameScene onEnter");

}

 

void GameScene::onEnterTransitionDidFinish()

{

    Layer::onEnterTransitionDidFinish();

    log("GameScene onEnterTransitionDidFinish");

}

 

void GameScene::onExit()

{

    Layer::onExit();

    log("GameScene onExit");

}

 

void GameScene::onExitTransitionDidStart()

{

    Layer::onExitTransitionDidStart();

    log("GameScene onExitTransitionDidStart");

}

时间: 2024-09-02 10:21:31

Cocos2d-x3.2 场景的生命周期的相关文章

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(

18_Android中Service的生命周期,远程服务,绑定远程服务,aidl服务调用,综合服务案例,编写一个应用程序调用远程支付宝远程服务场景

============================================================================服务的生命周期: 一.采用start的方式开始服务 生命周期如下:            onStart()过时了 开启服务:onCreate()-àonStartCommand()-àonDestory(); 如果服务已经开启,不会重复的执行onCreate(),而是会调用onStartCommand(); 如果停止的时候onDestory()

《Android应用开发攻略》——3.10 为测试重现活动生命周期场景

3.10 为测试重现活动生命周期场景 Daniel Fowler3.10.1 问题 应用程序应该适应活动生命周期.开发人员必须知道如何重现不同的生命周期场景.3.10.2 解决方案 利用日志获得对活动生命周期的全面了解,就能更容易地为测试重现生命周期场景.3.10.3 讨论 Android是为了移动的生活方式而设计的,在这种方式下,用户忙于多种工作:打电话.检查邮件.发送SMS信息.参与社交网络.拍照.访问互联网.运行应用程序等,甚至完成某些工作!因此,移动设备可能有多个应用程序,从而在内存中加

在云计算资源场景化应用的趋势下,FIT2CLOUD 的 IaaS + DevOps 能实现应用全生命周期自动化管理

摘要: Docker 相继被 Azure 和 GCP 接纳已经证明了云计算资源场景化应用的需求所在,分散和割裂的云端资源开始无法满足企业用户和运维的需求.然而,FIT2CLOUD 的自动化覆盖面更广更深,也许 Docker 相继被 Azure 和 GCP 接纳已经证明了云计算资源场景化应用的需求所在,分散和割裂的云端资源开始无法满足企业用户和运维的需求.然而,FIT2CLOUD 的自动化覆盖面更广更深,也许,你不再需要接触 IaaS 的后台. 云存储.云虚机.数据库.网站前后端程序部署--对于业

iOS应用生命周期

作为应用程序的委托对象,AppDelegate类在应用生命周期的不同阶段会回调不同的方法.首先,让我们先了解一下iOS 应用的不同状态及它们彼此间的关系,见图1 .                                                                                                             图1 iOS应用状态图 下面简要介绍一下iOS 应用的5种状态.  Not Running(非运行状态).应用没有运

《流程的永恒之道》(四)BPM的生命周期之执行阶段

在上篇文章中,我们讲到了BPM的生命周期包括设计.建模.执行.监控和优化5个阶段,本篇我们以住建行业的预销售许可审批的主线流程对BPM的执行过程进行详细的解剖. 1.1.1 预销售许可主线流程的执行分析 BPM中的流程包括可执行流程和不可执行流程,不可执行流程在企业中占据了非常重要的位置,它包括战略流程.规划流程和管理层面的流程,目前大多数的BPMS套件只是实现了对BPM中的可执行流程的支持,而未支持不可执行流程.有的厂商通过称为BPA(Business Process Analysis)的产品

SOA治理:服务生命周期管理流程示例

什么是SOA治理? SOA治理是业务与IT治理的交集,注重服务生命周期以确保SOA的业务价值. SOA治理是对服务生命周期的有效管理,而服务生命周期是SOA治理的关键目标. 图 1. SOA 治理 的定义 IBM 的方法:SOA 治理和管理方法 IBM 的治理方法包括两个不同的成功方面:定义和 执行.SOA 治理和管理方法(SOA Governance and Management Method,SGMM)是一种端到端的定义方 法,通过设计.实现和改进 SOA 治理来进行.SGMM 为您提供了确

协作式应用生命周期(Collaborative ALM)的互操作性

将 Rational ClearQuest 与 Rational Team Concert 或 Rational Quality Manager 集成起来的选项 通过本文学习将 IBM Rational ClearQuest 与 Rational Team Concert 和 Rational Quality Manager 集成起来,以实现程序生命周期管理(ALM)互操作性的选项. 本文采用新的基于 IBM Jazz 的工具向企业团队提供了指南.这样的团队通常想要与已 存在的项目集成起来,或者