cocostudio3.10如何点击按钮切换场景?请大神给出详细步骤.

2025-04-26 10:21:56
推荐回答(1个)
回答1:

如何调用cocostudio创建场景中的按钮控件
cocos2d::gui::TouchGroup* touchGroup = static_cast(render->getNode());
UIWidget* widget = static_cast(touchGroup->getWidgetByName("Panel_20"));
UIButton* button = static_cast(widget->getChildByName("Button_24"));
//为按钮添加触控事件
button->addTouchEventListener(this, toucheventselector(MenuScene::touchEvent));

return pNode;
}

[cpp] view plaincopyprint?

cocos2d::CCNode* MenuScene::createGameScene()

{

CCNode *pNode = SceneReader::sharedSceneReader()->createNodeWithSceneFile("yourJson.json");//加载第一个场景

if (pNode == NULL)

{

return NULL;

}

_node = pNode;

//从场景中获取ui按钮控件

CCComRender *render = static_cast(_node->getChildByTag(10013)->getComponent("GUIComponent"));

cocos2d::gui::TouchGroup* touchGroup = static_cast(render->getNode());

UIWidget* widget = static_cast(touchGroup->getWidgetByName("Panel_20"));

UIButton* button = static_cast(widget->getChildByName("Button_24"));

//为按钮添加触控事件

button->addTouchEventListener(this, toucheventselector(MenuScene::touchEvent));

return pNode;

}
cocos2d::CCNode* MenuScene::createGameScene()
{
CCNode *pNode = SceneReader::sharedSceneReader()->createNodeWithSceneFile("yourJson.json");//加载第一个场景
if (pNode == NULL)
{
return NULL;
}
_node = pNode;

//从场景中获取ui按钮控件
CCComRender *render = static_cast(_node->getChildByTag(10013)->getComponent("GUIComponent"));
cocos2d::gui::TouchGroup* touchGroup = static_cast(render->getNode());
UIWidget* widget = static_cast(touchGroup->getWidgetByName("Panel_20"));
UIButton* button = static_cast(widget->getChildByName("Button_24"));
//为按钮添加触控事件
button->addTouchEventListener(this, toucheventselector(MenuScene::touchEvent));

return pNode;
}

按钮单击相应函数如下:

[cpp] view plaincopyprint?

void MenuScene::touchEvent(CCObject *pSender, TouchEventType type)
{
CCScene *pScene = GetReadyScene::scene();//创建你需要切换的场景对象
CCDirector::sharedDirector()->replaceScene(pScene);
}

[cpp] view plaincopyprint?

void MenuScene::touchEvent(CCObject *pSender, TouchEventType type)

{

CCScene *pScene = GetReadyScene::scene();//创建你需要切换的场景对象

CCDirector::sharedDirector()->replaceScene(pScene);

}
void MenuScene::touchEvent(CCObject *pSender, TouchEventType type)
{
CCScene *pScene = GetReadyScene::scene();//创建你需要切换的场景对象
CCDirector::sharedDirector()->replaceScene(pScene);
}