Cocos2d-x 场景中的生命周期函数?

在Cocos2d-x中有这么几个函数,非常的常见。

virtual bool init( );

virtual void onEnter( );

virtual void onEnterTransitionDidFinish( );

virtual void onExitTransitionDidStart( );

virtual void onExit( );

virtual void cleanup( );

这6个函数都是Node节点类中的虚函数,也就是说,它的子类可以重写这些函数。而且这些函数的执行有一定的顺序。

情况一:单个场景从初始化 –> 退出 过程

bool init(){

if(!Layer::init()){ //父类的总是要先执行

return false;

}

return true;

}

void onEnter( ){

Layer::onEnter( );

}

void onEnterTransitionDidFinish( ){

Layer::onEnterTransitionDidFinish( );

}

注意:没有执行onExitTransitionDidStart(),因为只有一个场景。

void onExit( ){

  Layer::onExit( );

}

void cleanup( ){

Layer::cleanup( );

}

情况二:场景A 跳转到 场景B 【replaceScene】

B: bool init( );

A : onExitTransitionDidStart( );

B : void onEnter( );

A : void onExit( );

B : void onEnterTransitionDidFinish( );

A : void cleanup( );

情况三: 场景A 跳转到 场景B 【pushScene】

注意少了 void cleanup( );函数

B: bool init( );

A : void onExitTransitionDidStart( );

B : void onEnter( );

A : void onExit( );

B : void onEnterTransitionDidFinish( );

情况四: 从场景B 跳转到 场景A 【popScene】

注意没有 A: bool init( ); 因为不用初始化2次。

B: void onExitTransitionDidStart( );

B: void onExit( );

B : void cleanup( );

A: void onEnter( );

A : void onEnterTransitionDidFinish( );

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值