在cocos2d-x中怎么添加文字按钮

 我来答
就烦条0o
2016-07-25 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46492
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
#include "HelloWorldScene.h"
#include "SimpleAudioEngine.h"

using namespace cocos2d;
using namespace CocosDenshion;

CCScene* HelloWorld::scene()
{
// 'scene' is an autorelease object
CCScene *scene = CCScene::create();

// 'layer' is an autorelease object
HelloWorld *layer = HelloWorld::create();

// add layer as a child to scene
scene->addChild(layer);

// return the scene
return scene;
}

// on "init" you need to initialize your instance
bool HelloWorld::init()
{
//////////////////////////////
// 1. super init first
if ( !CCLayer::init() )
{
return false;
}

/////////////////////////////
// 2. add a menu item with "X" image, which is clicked to quit the program
// you may modify it.

// add a "close" icon to exit the progress. it's an autorelease object
CCMenuItemImage *pCloseItem = CCMenuItemImage::create(
"CloseNormal.png",
"CloseSelected.png",
this,
menu_selector(HelloWorld::menuCloseCallback) );
pCloseItem->setPosition( ccp(CCDirector::sharedDirector()->getWinSize().width - 20, 20) );

// create menu, it's an autorelease object
CCMenu* pMenu = CCMenu::create(pCloseItem, NULL);
pMenu->setPosition( CCPointZero );
this->addChild(pMenu, 1);

/////////////////////////////
// 3. add your codes below...

// add a label shows "Hello World"
// create and initialize a label
CCLabelTTF* pLabel = CCLabelTTF::create("Hello World", "Thonburi", 34);

// ask director the window size
CCSize size = CCDirector::sharedDirector()->getWinSize();

// position the label on the center of the screen
pLabel->setPosition( ccp(size.width / 2, size.height - 20) );

// add the label as a child to this layer
this->addChild(pLabel, 1);

// add "HelloWorld" splash screen"
CCSprite* pSprite = CCSprite::create("HelloWorld.png");

// position the sprite on the center of the screen
pSprite->setPosition( ccp(size.width/2, size.height/2) );

// add the sprite as a child to this layer
this->addChild(pSprite, 0);

CCMenuItemFont::setFontSize(32); //设置字号
CCMenuItemFont::setFontName("Marker Felt"); //设置字体
CCMenuItemFont *font1=CCMenuItemFont::create("hah", this, menu_selector(HelloWorld::menuCloseCallback1));//添加文字按钮,点击实现缩放
font1->setColor(ccc3(255, 0, 0)); //设置颜色

CCMenuItemToggle * font2=CCMenuItemToggle::createWithTarget(this,menu_selector(HelloWorld::menuCloseCallback2),CCMenuItemFont::create("on"),CCMenuItemFont::create("off"),NULL); //添加选择按钮,点击实现on与off之间切换
font2->setColor(ccc3(0, 255, 0));
font2->setSelectedIndex(1); //设置默认显示,从零算起(此为off)

CCMenu *newmenu=CCMenu::create(font1,font2,NULL); // 此步很关键,否则只是菜单项,但不能点击
newmenu->setPosition(ccp(size.width/2, size.height/2));
newmenu->alignItemsVertically(); //设置为竖排排列
this->addChild(newmenu,2);
num=1;
return true;
}
void HelloWorld::menuCloseCallback1(CCObject *pSender)
{
CCMenuItemFont *font=(CCMenuItemFont*)pSender;
num++; //hello类的私有成员
num%=2;
if(num==1)
{
font->setScale(2); //设置缩放
}
else
{
//font->setFontSize(18);
font->setScale(0.5);
}
}
void HelloWorld::menuCloseCallback2(CCObject *pSender)
{
}

void HelloWorld::menuCloseCallback(CCObject* pSender)
{
CCDirector::sharedDirector()->end();

#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
exit(0);
#endif
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式