替换Scene后,Schedule方法不再起作用

时间:2012-12-10 16:40:17

标签: c++ cocos2d-iphone cocos2d-x

我正在用cocos2dx制作游戏,所以我创建了一个名为CoCoGui的类 我还创建了一个IntroPage类,它继承自CCLayerColor的游戏介绍页面,以及一个StartPage类,它也是从CCLayerColor继承而来的。 我想显示前2秒的介绍页面,然后显示StartingPage 但在updateGame CoCoGui函数(这是游戏的主循环)中,当replaceScene方法被调用,而Scene被替换时,{{1 }}方法将不再被调用! 请帮我解决这个问题 谢谢!

这是CoCoGui.h文件: updateGameStartingPage是继承自IntroPage

的两个类
CCLayerColor

这里也是CoCoGui.cpp文件

#ifndef _COCOGUI_H_
#define _COCOGUI_H_

#include "StartingPage.h"
#include "..\Classes\WorkSpace.h"
#include "..\Classes\GameBoard.h"
#include "..\Classes\IntroPage.h"
using namespace cocos2d;

class CoCoGui : public CCLayerColor{

public:
    CoCoGui();
    void addScene (CCScene * startPage, CCScene * work);
    virtual ~CoCoGui(void);
    void updateGame ( float dt );
    virtual bool init();
    static CCScene* scene();
    CREATE_FUNC(CoCoGui);
private:
    bool isInit;
    CCScene * runnigScene;
    IntroPage * introPage;
    StartingPage * startingPage;
    void onEnterTransitionDidFinish();
    void menuCloseCallback(CCObject* pSender);
public:
    CCScene * getRunningScene(void);
};

#endif /* COCOGUI_H */

3 个答案:

答案 0 :(得分:2)

ReplaceScene将触发this->onExit(),这将触发unschedule功能。

答案 1 :(得分:1)

如果这与cocos2d-iphone类似,那么你必须调用onEnterTransitionDidFinish的基类实现以及类似的onEnter / onExit覆盖。在cocos2d-iphone中,在某些方法中不调用super会导致调度和输入停止工作。

答案 2 :(得分:0)

尝试添加

this->resume();    
拨打时间表后

还要确保已加载连接到图层的场景。如果不是,则会导致运行时错误。