实现游戏暂停与恢复功能
来源:互联网 发布:广数系统g76怎么编程 编辑:程序博客网 时间:2024/05/16 14:32
知识点:
//暂停游戏
cocos2d::CCDirector::sharedDirector()->pause();
//恢复游戏
cocos2d::CCDirector::sharedDirector()->resume();
cocos2d暂停游戏时保存当前的状态。
CCNode * node = SceneManager::getLoadCcbiNode(ccbi_fileName_pausegame, ccbi_nodeName_pausegame, GamePauseLoader::loader());
addChild(node,2);}
在封装好的 scenemanager中 绑定加载ccbi文件,添加到本类中 第二层 此处简写,原始为this->addChild(node,2);详解:
执行pause暂停函数 叠加 暂停界面到游戏界面 复合函数/方法,习惯操作:函数提出另写其方法
/**
暂停游戏
@param sender <#sender description#>
*/
voidPlayGameScene::pauseGame(CCObject *sender){
pause(); //执行函数
CCLog("pauseGame");
CCNode * node =SceneManager::getLoadCcbiNode(ccbi_fileName_pausegame,ccbi_nodeName_pausegame,GamePauseLoader::loader());
addChild(node,2);}
游戏暂停实现:
void PlayGameScene::pause(){
CCLog("CCAlert::onEnter()");
cocos2d::CCDirector::sharedDirector()->pause();
}
用于释放 加载顺序进入新场景后,该场景被释放)场景初始化 加载顺序2
GamePauseScene::GamePauseScene(){
CCLog("GamePauseScene::GamePauseScene()");
}GamePauseScene::~GamePauseScene(){
CCLog("GamePauseScene::~GamePauseScene()");
}bool GamePauseScene::init() {
if ( !CCLayer::init() ) { returnfalse; }
CCLog("GamePauseScene::init()"); returntrue;}
2将cocosbuilder菜单与对象连接(绑定),之后执行
代码固定如下:
/**
用于连接ccbi文件中的菜单按钮
@param pTarget 菜单按钮对象
@param pSelectorName 菜单连接的名称
@returns <#return value description#>
*/
SEL_MenuHandlerGamePauseScene::onResolveCCBCCMenuItemSelector(CCObject * pTarget,CCString * pSelectorName)
{CCB_SELECTORRESOLVER_CCMENUITEM_GLUE(this,"jixuGame",GamePauseScene::jixuGame); returnNULL;}
用于连接ccbi文件中的普通按钮或精灵
SEL_CCControlHandlerGamePauseScene::onResolveCCBCCControlSelector(CCObject * pTarget,CCString * pSelectorName){return NULL;}
用于连接ccbi文件中的对象
boolGamePauseScene::onAssignCCBMemberVariable(CCObject * pTarget, CCString * pMemberVariableName,CCNode * pNode){
return false;
}当ccbi文件加载完成后执行该方法
void GamePauseScene::onNodeLoaded(CCNode * pNode,cocos2d::extension::CCNodeLoader * pNodeLoader){
CCLog("onNodeLoadedonNodeLoadedonNodeLoaded");
CCSize size =CCDirector::sharedDirector()->getWinSize();
}/**
3(返回继续游戏)方法的实现
继续游戏
@param sender 菜单对象
*/
void GamePauseScene::jixuGame(CCObject *sender)
{
CCLog("jixuGame");
PlayGameScene *a = (PlayGameScene *)this->getParent();
a->testGame();
this->removeFromParentAndCleanup(true);// 移除父类
cocos2d::CCDirector::sharedDirector()->resume();
}
CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, -128, true);
CCLayer::onEnter();
}
void GamePauseScene::onExit(){
CCDirector::sharedDirector()->getTouchDispatcher()->removeDelegate(this);
CCLayer::onExit();
}
暂时理解为 执行场景的优先级
B:封装
/**
加载 ccbi文件
@param fileName文件名称
@param nodeName关联的名字用于关联class
@param nodeLoader加载器
@returns node
*/
CCNode*SceneManager::getLoadCcbiNode(conststd::string& fileName,const char * nodeName,CCNodeLoader * nodeLoader)
{ CCNodeLoaderLibrary *lib =CCNodeLoaderLibrary::newDefaultCCNodeLoaderLibrary();
cocos2d::extension::CCBReader* reader =newcocos2d::extension::CCBReader(lib);
lib->registerCCNodeLoader(nodeName, nodeLoader);
std::string filePath =ccbi_path+fileName;
CCNode* layer = reader->readNodeGraphFromFile(filePath.c_str());
reader->release();
return layer;
}
- 实现游戏暂停与恢复功能
- Cocos2d-x 中游戏暂停与恢复
- 实现 iPhone 游戏暂停功能的方法
- cocos2d-x-2.1.3 中实现游戏的简单暂停与恢复
- 暂停游戏功能
- 如何实现线程池的暂停和恢复功能
- activity 暂停与恢复
- cocos 3.2游戏暂停功能
- Time之游戏暂停功能
- 读 Beginning Android Games 2nd Edition (十一) 加入游戏暂停/恢复功能
- NSTimer的暂停与恢复
- 线程暂停与恢复研究
- NSTimer的暂停与恢复
- cocos2d-x游戏暂停和恢复
- cocos2d-x游戏暂停和恢复
- cocos2d-x暂停和恢复游戏
- JS实现程序暂停与继续功能代码解读
- mysql实现备份与恢复功能
- 标准体重计算器
- 配置struts.xml
- 正则表达式的JS验证
- BugFree的7种解决方案各自的含义
- 关于Puppy Linux开始菜单的制作
- 实现游戏暂停与恢复功能
- boost 引用时应注意包含的头文件及库文件路径
- ccs5裸机调试AM1808
- Canvas注意事项
- 3月广州传智播客就业报道
- AndroidRom结构介绍、精简和内置、一般刷机过程
- Non JS Function call.
- 程序员之路--WCM网站开发(002-TRSWCMV6.5安装)
- GetVersion和GetVersionEx