在cocos2d-x中怎么添加文字按钮
1个回答
展开全部
#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
}
#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
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询