层(Layer)的生命周期函数有如下:
init()。初始化层调用。
onEnter()。进入层时候调用。
onEnterTransitionDidFinish()。进入层而且过渡动画结束时候调用。
onExit()。退出层时候调用。
onExitTransitionDidStart()。退出层而且开始过渡动画时候调用。
cleanup()。层对象被清除时候调用。
提示 层(Layer)继承于节点(Node),这些生命周期函数根本上是从Node继承而来。事实上所有Node对象(包括:场景、层、精灵等)都有这些函数,只要是子类化这些类都可以重写这些函数,来处理这些对象的不同生命周期阶段事件。
我们重写HelloWorld层的中几个生命周期函数,代码如下:
- bool HelloWorld::init()
- {
- if( !Layer::init() )
- {
- returnfalse;
- }
- log("HelloWorldinit");
- ......
- returntrue;
- }
- void HelloWorld::onEnter()
- {
- Layer::onEnter();
- log("HelloWorldonEnter");
- }
- voidHelloWorld::onEnterTransitionDidFinish()
- {
- Layer::onEnterTransitionDidFinish();
- log("HelloWorldonEnterTransitionDidFinish");
- }
- void HelloWorld::onExit()
- {
- Layer::onExit();
- log("HelloWorldonExit");
- }
- voidHelloWorld::onExitTransitionDidStart()
- {
- Layer::onExitTransitionDidStart();
- log("HelloWorldonExitTransitionDidStart");
- }
- void HelloWorld::cleanup()
- {
- Layer::cleanup();
- log("HelloWorldcleanup");
- }
注意 在重写层生命周期函数中,第一行代码应该是调用父类的函数,例如HelloWorld::onEnter()中第一行应该是Layer::onEnter()函数,如果不调用父类的函数可能会导致层中动画、动作或计划无法执行。
如果HelloWorld是第一个场景,当启动HelloWorld场景时候,它的调用顺序如下图所示:
《Cocos2d-x实战 C++卷》现已上线,各大商店均已开售:
京东:http://item.jd.com/11584534.html
当当: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
相关推荐
1. **Cocos2d-x架构**:了解Cocos2d-x的核心组件,如场景(Scene)、层(Layer)、精灵(Sprite)、动作(Action)等,以及如何用Lua来控制这些元素。 2. **Lua与C++交互**:Cocos2d-x支持Lua作为脚本语言,源码会展示如何...
通过以上文件的分析,我们可以了解到cocos2d-x应用的基本结构和运行流程,包括如何初始化引擎、创建场景、处理应用生命周期事件,以及如何加载和使用资源。对于初学者,理解和实践这些代码是掌握cocos2d-x开发的关键...
AppDelegate是cocos2d-x框架中的一个关键类,它扮演着应用程序入口点的角色,处理应用程序的生命周期事件。让我们深入探讨AppDelegate及其在cocos2d-x中的作用。 1. AppDelegate.h 文件: 在预编译头文件(`#ifndef...
5. **节点和场景管理**:在Cocos2d-x中,游戏由一系列节点(如Sprite、Label、Layer等)组成,这些节点构成了场景。你可以使用Lua创建和管理这些节点,例如创建一个新的精灵,添加到场景中,或者改变其位置、大小、...
Cocos2d-x粒子系统通常使用XML或二进制的`.plist`文件来定义粒子的属性,如粒子的生命周期、发射速率、颜色变化、大小变化等。例如,一个爆炸特效的.plist文件可能设定了粒子从一个小点迅速扩大,然后消失,颜色从亮...
通过研究这个源码,新手可以了解cocos2d-x的类结构、对象生命周期、动画机制、物理引擎应用等基础知识。此外,还可以学习如何使用cocos2d-x的精灵(Sprite)、动作(Action)和层(Layer)等组件构建游戏世界,以及...
在cocos2d-x的学习过程中,首先我们需要...在深入学习cocos2d-x的过程中,你需要掌握场景和层的概念,理解设备方向的处理,熟悉动作和事件系统,以及有效地管理和使用游戏资源,这些都是构建游戏基础架构的关键知识点。
cocos2d-x提供了丰富的API,包括精灵、场景、动作、物理引擎等,使得游戏开发变得简单易行。 二、游戏设计基础 “打飞机”游戏的核心元素包括飞机、子弹、敌机和障碍物。我们需要为这些元素创建对应的类,并实现...
cocos2d-x提供了一个场景(Scene)、层(Layer)、精灵(Sprite)的层次结构,用于构建游戏世界。在这个案例中,游戏场景可能包含多个层,分别负责背景、玩家飞机、敌机和子弹的显示。每个层可以包含多个精灵,如...
第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中的`Layer`、`Sprite`、`Scene`、`Node`等基础元素来构建游戏场景。`Layer`是游戏逻辑的主要承载者,`Sprite`用于显示图像,`Scene`则作为游戏的顶层容器,而`Node`是所有可视化...
《cocos2d-x 切萝卜:游戏开发与版本适配详解》 cocos2d-x,作为一款开源的游戏开发框架,深受众多游戏...通过深入研究和实践,开发者不仅可以提升cocos2d-x的使用技能,还能对游戏开发的整个生命周期有更全面的认识。
【cocos2d-x 自学文档】 cocos2d-x 是一个开源的游戏开发框架,它基于C++,广泛应用于移动游戏开发。以下是一些cocos2d-x的关键知识点: 一、运动中的加速度 在cocos2d-x中,我们可以利用Ease系列的方法来实现物体...
在这个例子中,你可能会学习到如何在`AppDelegate`中初始化Cocos2d-x引擎,设置渲染窗口,加载第一个场景,以及处理应用的生命周期事件,如暂停、恢复、退出等。 在`AppDelegate.cpp`中,`...
在弹球游戏中,cocos2d-x负责渲染游戏场景、处理用户输入、播放音效、管理游戏对象的生命周期等核心功能。游戏场景通常由多个Layer构成,每个Layer代表一个游戏层面,如背景、游戏对象、用户交互层等。游戏对象(如...
在Cocos2d-x游戏中,多线程常用于以下场景: - 资源加载:如预加载图片、音频文件,避免阻塞主渲染线程。 - 网络通信:如处理网络请求,避免长时间阻塞主线程影响游戏体验。 - AI计算:复杂AI逻辑可以放在单独的线程...
cocos2d-x 2.1.1的API文档包含了丰富的类、方法和函数,是开发者理解和使用框架的关键。主要涵盖以下几个方面: 1. 图形渲染:包括CCNode、CCSprite、CCScene等类,用于构建游戏场景和绘制图形。例如,CCNode是所有...
《Cocos2d-x之Lua核心编程(第二版)》配套代码是一份极其重要的学习资源,旨在帮助开发者深入理解和熟练运用Cocos2d-x游戏引擎与Lua语言进行游戏开发。Cocos2d-x是一个跨平台的游戏开发框架,而Lua则是一种轻量级的...
《Cocos2d-X by Example Beginners Guide》是针对初学者的一本Cocos2d-X编程指南,其中第五章的代码提供了深入实践的示例。Cocos2d-X是一个开源的游戏开发框架,它基于C++,并支持iOS、Android、Windows等多平台。...
这里可以利用Cocos2d-x的`collider`系统或者自定义碰撞检测函数。 7. **游戏循环与状态管理**: 游戏有开始、运行、结束等多种状态,需要管理这些状态的转换。使用状态机模式可以有效地组织游戏流程。 8. **数据...