`

Cocos2d-x场景生命周期函数介绍

阅读更多

层(Layer)的生命周期函数有如下:

init()。初始化层调用。

onEnter()。进入层时候调用。

onEnterTransitionDidFinish()。进入层而且过渡动画结束时候调用。

onExit()。退出层时候调用。

onExitTransitionDidStart()。退出层而且开始过渡动画时候调用。

cleanup()。层对象被清除时候调用。

 

提示  层(Layer)继承于节点(Node),这些生命周期函数根本上是从Node继承而来。事实上所有Node对象(包括:场景、层、精灵等)都有这些函数,只要是子类化这些类都可以重写这些函数,来处理这些对象的不同生命周期阶段事件。

 

我们重写HelloWorld层的中几个生命周期函数,代码如下:

 

[html] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. bool HelloWorld::init()  
  2. {             
  3.     if( !Layer::init() )  
  4.     {  
  5.          returnfalse;  
  6.     }  
  7.    
  8.     log("HelloWorldinit");  
  9.     ......  
  10.     returntrue;  
  11. }  
  12.    
  13. void HelloWorld::onEnter()  
  14. {  
  15.     Layer::onEnter();  
  16.     log("HelloWorldonEnter");  
  17. }  
  18.    
  19. voidHelloWorld::onEnterTransitionDidFinish()  
  20. {  
  21.     Layer::onEnterTransitionDidFinish();  
  22.     log("HelloWorldonEnterTransitionDidFinish");  
  23. }  
  24.    
  25. void HelloWorld::onExit()  
  26. {  
  27.     Layer::onExit();  
  28.     log("HelloWorldonExit");  
  29. }  
  30.    
  31. voidHelloWorld::onExitTransitionDidStart()  
  32. {  
  33.     Layer::onExitTransitionDidStart();  
  34.     log("HelloWorldonExitTransitionDidStart");  
  35. }  
  36.    
  37. void HelloWorld::cleanup()  
  38. {  
  39.     Layer::cleanup();  
  40.     log("HelloWorldcleanup");  
  41. }  
  42.    

 

 

注意 在重写层生命周期函数中,第一行代码应该是调用父类的函数,例如HelloWorld::onEnter()中第一行应该是Layer::onEnter()函数,如果不调用父类的函数可能会导致层中动画、动作或计划无法执行。

 

如果HelloWorld是第一个场景,当启动HelloWorld场景时候,它的调用顺序如下图所示:

 

更多内容请关注最新Cocos图书《Cocos2d-x实战 C++卷》
本书交流讨论网站:http://www.cocoagame.net
更多精彩视频课程请关注智捷课堂Cocos课程:http://v.51work6.com
欢迎加入Cocos2d-x技术讨论群:257760386


《Cocos2d-x实战 C++卷》现已上线,各大商店均已开售:

京东:http://item.jd.com/11584534.html

亚马逊:http://www.amazon.cn/Cocos2d-x%E5%AE%9E%E6%88%98-C-%E5%8D%B7-%E5%85%B3%E4%B8%9C%E5%8D%87/dp/B00PTYWTLU

当当:http://product.dangdang.com/23606265.html

互动出版网:http://product.china-pub.com/3770734

 

《Cocos2d-x实战 C++卷》源码及样章下载地址:

源码下载地址:http://51work6.com/forum.php?mod=viewthread&tid=1155&extra=page%3D1 

样章下载地址:http://51work6.com/forum.php?mod=viewthread&tid=1157&extra=page%3D1

欢迎关注智捷iOS课堂微信公共平台
 
分享到:
评论

相关推荐

    《Cocos2d-x实战 Lua卷》源码.7z

    1. **Cocos2d-x架构**:了解Cocos2d-x的核心组件,如场景(Scene)、层(Layer)、精灵(Sprite)、动作(Action)等,以及如何用Lua来控制这些元素。 2. **Lua与C++交互**:Cocos2d-x支持Lua作为脚本语言,源码会展示如何...

    cocos2d-x测试代码

    通过以上文件的分析,我们可以了解到cocos2d-x应用的基本结构和运行流程,包括如何初始化引擎、创建场景、处理应用生命周期事件,以及如何加载和使用资源。对于初学者,理解和实践这些代码是掌握cocos2d-x开发的关键...

    cocos2d-x学习笔记

    AppDelegate是cocos2d-x框架中的一个关键类,它扮演着应用程序入口点的角色,处理应用程序的生命周期事件。让我们深入探讨AppDelegate及其在cocos2d-x中的作用。 1. AppDelegate.h 文件: 在预编译头文件(`#ifndef...

    Cocos2d-x 使用Lua开发基础

    5. **节点和场景管理**:在Cocos2d-x中,游戏由一系列节点(如Sprite、Label、Layer等)组成,这些节点构成了场景。你可以使用Lua创建和管理这些节点,例如创建一个新的精灵,添加到场景中,或者改变其位置、大小、...

    cocos2d-x 初级粒子爆炸特效

    Cocos2d-x粒子系统通常使用XML或二进制的`.plist`文件来定义粒子的属性,如粒子的生命周期、发射速率、颜色变化、大小变化等。例如,一个爆炸特效的.plist文件可能设定了粒子从一个小点迅速扩大,然后消失,颜色从亮...

    cocos2d-x 游戏源码,高仿flappybird,

    通过研究这个源码,新手可以了解cocos2d-x的类结构、对象生命周期、动画机制、物理引擎应用等基础知识。此外,还可以学习如何使用cocos2d-x的精灵(Sprite)、动作(Action)和层(Layer)等组件构建游戏世界,以及...

    cocos2d-x_学习文档

    在cocos2d-x的学习过程中,首先我们需要...在深入学习cocos2d-x的过程中,你需要掌握场景和层的概念,理解设备方向的处理,熟悉动作和事件系统,以及有效地管理和使用游戏资源,这些都是构建游戏基础架构的关键知识点。

    cocos2d-x实现打飞机

    cocos2d-x提供了丰富的API,包括精灵、场景、动作、物理引擎等,使得游戏开发变得简单易行。 二、游戏设计基础 “打飞机”游戏的核心元素包括飞机、子弹、敌机和障碍物。我们需要为这些元素创建对应的类,并实现...

    基于cocos2d-x引擎实现飞机大战

    cocos2d-x提供了一个场景(Scene)、层(Layer)、精灵(Sprite)的层次结构,用于构建游戏世界。在这个案例中,游戏场景可能包含多个层,分别负责背景、玩家飞机、敌机和子弹的显示。每个层可以包含多个精灵,如...

    Cocos2D-X游戏开发技术精解

    第1章 Cocos2D-X引擎的介绍 1 1.1 何为游戏引擎 1 1.1.1 游戏的核心—引擎 1 1.1.2 引擎的特点 2 1.1.3 知名的引擎介绍 4 1.1.4 引擎的分类 5 1.2 Cocos2D-X引擎的来历 8 1.3 引擎的版本 9 1.4 下载与安装 10 1.5 ...

    Cocos2D-X像素鸟源码以及资源包

    游戏的核心部分可能使用了Cocos2D-X中的`Layer`、`Sprite`、`Scene`、`Node`等基础元素来构建游戏场景。`Layer`是游戏逻辑的主要承载者,`Sprite`用于显示图像,`Scene`则作为游戏的顶层容器,而`Node`是所有可视化...

    cocos2d-x 切萝卜

    《cocos2d-x 切萝卜:游戏开发与版本适配详解》 cocos2d-x,作为一款开源的游戏开发框架,深受众多游戏...通过深入研究和实践,开发者不仅可以提升cocos2d-x的使用技能,还能对游戏开发的整个生命周期有更全面的认识。

    cocos2d-x 自学文档

    【cocos2d-x 自学文档】 cocos2d-x 是一个开源的游戏开发框架,它基于C++,广泛应用于移动游戏开发。以下是一些cocos2d-x的关键知识点: 一、运动中的加速度 在cocos2d-x中,我们可以利用Ease系列的方法来实现物体...

    cocos2d-x案例开发大全-第2章-cocos2dx3.3实现

    在这个例子中,你可能会学习到如何在`AppDelegate`中初始化Cocos2d-x引擎,设置渲染窗口,加载第一个场景,以及处理应用的生命周期事件,如暂停、恢复、退出等。 在`AppDelegate.cpp`中,`...

    弹球游戏的cocos2d-x版源码

    在弹球游戏中,cocos2d-x负责渲染游戏场景、处理用户输入、播放音效、管理游戏对象的生命周期等核心功能。游戏场景通常由多个Layer构成,每个Layer代表一个游戏层面,如背景、游戏对象、用户交互层等。游戏对象(如...

    Cocos2d-x 中使用多线程

    在Cocos2d-x游戏中,多线程常用于以下场景: - 资源加载:如预加载图片、音频文件,避免阻塞主渲染线程。 - 网络通信:如处理网络请求,避免长时间阻塞主线程影响游戏体验。 - AI计算:复杂AI逻辑可以放在单独的线程...

    cocos2d-x_2.1.1_EN_API_HTML版

    cocos2d-x 2.1.1的API文档包含了丰富的类、方法和函数,是开发者理解和使用框架的关键。主要涵盖以下几个方面: 1. 图形渲染:包括CCNode、CCSprite、CCScene等类,用于构建游戏场景和绘制图形。例如,CCNode是所有...

    cocos2dx lua核心编程(第二版)配套代码

    《Cocos2d-x之Lua核心编程(第二版)》配套代码是一份极其重要的学习资源,旨在帮助开发者深入理解和熟练运用Cocos2d-x游戏引擎与Lua语言进行游戏开发。Cocos2d-x是一个跨平台的游戏开发框架,而Lua则是一种轻量级的...

    Cocos2d-X_by_Example_Beginners_Guide[第五章代码]

    《Cocos2d-X by Example Beginners Guide》是针对初学者的一本Cocos2d-X编程指南,其中第五章的代码提供了深入实践的示例。Cocos2d-X是一个开源的游戏开发框架,它基于C++,并支持iOS、Android、Windows等多平台。...

    使用cocos2d-x开发一款单机AI版球球大作战游戏

    这里可以利用Cocos2d-x的`collider`系统或者自定义碰撞检测函数。 7. **游戏循环与状态管理**: 游戏有开始、运行、结束等多种状态,需要管理这些状态的转换。使用状态机模式可以有效地组织游戏流程。 8. **数据...

Global site tag (gtag.js) - Google Analytics