如何调用cocostudio创建场景中的按钮控件

2025-04-28 17:29:42
推荐回答(2个)
回答1:

一、调用cocostudio创建场景中的按钮控件实现步骤:

1、首先使用cocostudio创建两个场景,在其中一个场景中添加一个了使用cocostudio创建的ui按钮控件,实现代码如下:

2、按钮单击相应函数如下:

二、使用工具及知识点:cocostudio、函数知识,控件使用。

三、注意事项:以上代码的使用前提是你要对cocostudio的使用有一定熟悉,一些加载的头文件也得注意还要就是using namespace
XXX的添加。

回答2:

如何调用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);
}