cocos 3.2游戏暂停功能
发布时间:2020-12-14 21:18:58 所属栏目:百科 来源:网络整理
导读:1,GamePauseUtils.h //// GamePauseUtils.h// AdventureKing//// Created by jianan on 15/5/12.////#ifndef __AdventureKing__GamePauseUtils__#define __AdventureKing__GamePauseUtils__#include "cocos2d.h"USING_NS_CC;//操作类型typedef enum OPERATE
1,GamePauseUtils.h
// // GamePauseUtils.h // AdventureKing // // Created by jianan on 15/5/12. // // #ifndef __AdventureKing__GamePauseUtils__ #define __AdventureKing__GamePauseUtils__ #include "cocos2d.h" USING_NS_CC; //操作类型 typedef enum OPERATE_TYPE{ OPERATE_TYPE_PAUSE,OPERATE_TYPE_RESUME }OPERATE_TYPE; // class GamePauseUtils { public: GamePauseUtils(); ~GamePauseUtils(); static GamePauseUtils* getInstance(); void operateAllSchedulerAndActions(Node* node,OPERATE_TYPE type,int ignoreTag); //忽略检测的tag }; #endif /* defined(__AdventureKing__GamePauseUtils__) */ 2,GamePauseUtils.cpp // // GamePauseUtils.cpp // AdventureKing // // Created by jianan on 15/5/12. // // #include "GamePauseUtils.h" static GamePauseUtils* instance = NULL; GamePauseUtils::GamePauseUtils(){ } GamePauseUtils::~GamePauseUtils(){ } GamePauseUtils* GamePauseUtils::getInstance(){ if(instance == NULL){ instance = new GamePauseUtils(); } return instance; } void GamePauseUtils::operateAllSchedulerAndActions(Node* node,int ignoreTag){ if(node->isRunning()){ switch(type){ case OPERATE_TYPE_PAUSE: node->pause(); break; case OPERATE_TYPE_RESUME: node->resume(); break; } Vector<Node*> array = node->getChildren(); if(array.size() > 0){ for(Vector<Node*>::iterator iter = array.begin(); iter != array.end();){ Node* child = *iter; if(child->getTag() == ignoreTag){ iter++; }else{ iter++; this->operateAllSchedulerAndActions(child,type,ignoreTag); } } } } }3,暂停 GamePauseUtils::getInstance()->operateAllSchedulerAndActions(rootLayer,OPERATE_TYPE_PAUSE,IGNORE_TAG);4,恢复 GamePauseUtils::getInstance()->operateAllSchedulerAndActions(rootLayer,OPERATE_TYPE_RESUME,IGNORE_TAG); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |