天天看點

cocos2d-x學習總結—文字按鈕

#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
}
           

運作效果:

cocos2d-x學習總結—文字按鈕