每个CCNode都有如下三个生命周期函数:
virtual void onEnter(). 当init函数执行后,默认进入onEnter生命周期函数。
virtual void onEnterTransactionDidFinish(). 当A场景利用CCTransactionScene动画切到B场景时,过渡动画执行完成后默认调用B场景的此生命周期函数。
virtual void onExit(). 当场景退出后,默认调用此生命周期函数。
A利用CCTransactionScene动画切到B, 两个场景的生命周期调用顺序如下:
B的init函数;
B的onEnter函数;
A的onExit函数;
B的onEnterTransitionDidFinish函数;
A的析构函数。
分享到:
相关推荐
MyBatis-Plus 的代码生成器,通过 CodeGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。
CCNode *childNode = [CCNode node]; [myNode addChild:childNode z:0 tag:123]; ``` 要找到或移除特定标签的节点,可以使用`getChildByTag:`和`removeChildByTag:cleanUp:`方法。`cleanUp`参数用于清理节点上的动作...
- **addAction()**:这个函数通过ActionManager给CCNode对象添加一个动作。 - **removeAllActions()**:移除CCActionManager中的所有动作。这个函数是静态函数,通过CCActionManager::sharedManager()获取实例调用...
- `virtual void startWithTarget(CCNode *pTarget)`:指定动作的执行目标,并启动动作。 - `virtual void stop(void)`:停止当前动作。需要注意的是,通常不建议手动调用此方法来停止动作,除非有特殊需求;否则,...
- `void scrollViewDidZoom(cocos2d::extension::CCScrollView *view)`:如果允许缩放,此函数会在缩放后被调用。 - `bool scrollViewInitPage(cocos2d::CCNode *pScroll, cocos2d::CCNode *pPage, int nPage)`:...
`CCGestureRecognizer`通常会关联到一个`CCLayer`或者`CCNode`,当用户在屏幕上执行特定手势时,它会触发相应的回调方法,让开发者可以处理这些手势事件。 在提供的文件列表中,`CCNode.h`和`.m`、`CCLayer.h`和`.m...
导演类负责管理游戏的生命周期,控制场景切换、渲染循环以及事件处理,确保游戏按照预设的规则平稳运行。 #### 场景(CCScene) **场景(CCScene)**代表游戏的一个独立部分,可以是一个关卡或一个特定的游戏界面...
CCActionMessager是管理所有Action的单例,一般情况下并不直接使用这个单例,而是使用CCNode的接口,但是假如你想操作的目标不是CCNode的子类或者你想暂停/恢复行动就要使用到CCActionMessager。 五、cocos2d-x工具...
这些组件的挂载机制在`CCJsonReader.cpp`的`createObject`函数中实现,通过解析JSON数据动态创建组件并将其附加至相应的`CCNode`。 3. **组件访问与操作**:获取场景中的特定组件通常分两步进行。首先,通过`...
5. **startWithTarget(CCNode *pTarget)**:开始执行动作,传入的目标对象是执行动作的CCNode实例。 6. **stop(void)**:停止动作。动作完成后会自动调用,但不应手动调用此方法,除非在特定动作如`CCSpeed`, `...
4. 资源管理:如CCFileUtils和CCDirector,前者负责加载和管理游戏资源,后者管理游戏的生命周期,如帧率控制、场景切换等。 5. 物理引擎:cocos2d-x 2.1.1集成了Box2D物理引擎,通过CCPhysicsNode和CCPhysicsBody...
构造函数不能是虚函数,因为虚函数表是在对象构造完成后才会被初始化的,而构造函数是在对象构造过程中调用的。析构函数可以是纯虚的,因为析构函数是在对象销毁时调用的,而纯虚函数是在基类中声明的,子类必须实现...
为了在屏幕上显示血条,我们需要在游戏场景类(如`GameScene`)中添加`HealthBar`实例,并在其生命周期方法中调用`updateHealth`: ```cpp class GameScene : public cocos2d::CCLayer { public: virtual void ...
- **CCActionMessage** 是管理所有动作的单例,通常通过CCNode接口间接使用,但在需要直接控制非CCNode子类或暂停/恢复动作时,会直接与CCActionMessenger交互。 3. **Cocos2d-x开发工具** - **TiledMap** 用于...
在这个场景中,我们看到一个关于Cocos2d手势支持的自定义实现,通过改写CCLayer、CCNode和CCGestureRecognizer这三个核心类。 首先,`CCLayer`是Cocos2d中的一个基础类,它提供了一个可以添加子节点、处理事件(如...
void ScaleSprite(CCNode* InSender, void* infoTouch); private: CSkillDuiHuanItem* createNode(int32_t idx); private: int m_iSumExchanges; CCTableViewEX* m_pTableView; }; ``` 六、结论 TableView 是...
tolua_cclass(tolua_S, "LuaUseSprite", "LuaUseSprite", "CCNode", NULL); ``` 这将注册我们的自定义类 `LuaUseSprite`,使其可以在 Lua 中使用。 添加自定义类的函数 在 `static void tolua_reg_types(lua_State...
`来控制动作的生命周期。 8. cocos2d_InstantAction:这个文件名可能是指包含一些即时动作(Instant Actions)的示例代码或资源。即时动作是一类特殊的动作,它们在被启动时立即完成,如CCCallFunc、CCShow、CCHide...
该版本支持IDEA2021.3,目前发现不支持对已生成的Mapper、JavaBean、Xml覆盖操作,会报java.lang.NoClassDefFoundError: com/intellij/mock/MockVirtualFile ,需要先将已经生成的Mapper、JavaBean、Xml文件删除后再...