cocos2d-x常用功能與控件

CCDirector,主要職責是管理場景和切換場景,遊戲暫停等.另外他還負責初始化openes相關的一東西.是一個單例類

常用函數

runWithScene 運行場景

replaceScene 替換場景

getRunningScene  獲得當前場景

getAnimationInterval 獲取幀間距

setAnimationInterval 設置幀間距

isDisplayFPS 是否顯示幀率

setDisplayFPS    設置是否顯示幀率,可以再調試階段使用

getWinSize   獲取窗口大小

getWinSizeInPixels       獲取窗口像素大小

drawScene        繪製場景所有元素

 

CCScene,場景類,遊戲場景一般是指在某個時刻能獨立運行的部分,包括可見的怪物,地形和不可見的邏輯腳本等.例如一個遊戲的一個特定關卡,遊戲菜單,過場動畫等都是一個獨立的場景.cocos2d中的場景又由不同的層(CCLayer)組成. CCScene是CCNode的子類, 主要作用是一個容器

 

CCNode,節點類,是遊戲中最重要,最基礎的對象,cocos2dx,任何可見的或不可以的遊戲邏輯對象都是一個節點,節點有以下特點:

a)        是一個容器,可以包含任意多個其它節點.

b)        可以執行一個行爲(CCAction)

c)        可以執行一定時的任務回調

d)        擁有座標變換(transform)信息,postion,scale,rotation

e)        由於一個節點可以添加任意個子節點,所有的節點組成一個樹狀結構,因此父節點的座標變換會影響子節點在世界座標系中的座標,一個節點只能擁有一個父節點

 

常用函數:

getScale 獲取縮放

setScale 設置縮放

addChild 添加子節點

removeChild  刪除子節點

removeFromParentAndCleanup   從父節點移除,同時移除子節點

removeChildByTag 移除標記節點

removeAllChildrenWithCleanup 移除所有子節點

getChildByTag    獲得標記節點

runAction        執行動作

stopAction   停止動作

stopAllActions   停止所有動作

scheduleUpdate   執行update函數,需要重載

unscheduleUpdate 停止執行update函數

schedule(SEL_SCHEDULE selector);      執行回調

unschedule(SEL_SCHEDULE selector);    停止執行回調

 

CCLayer,層類,繼承自CCNode類,主要是起到容器和處理案件消息的作用

registerWithTouchDispatcher  註冊事件監聽

ccTouchBegan 按下按鍵處理回調,需重載

ccTouchesMoved   移動按鍵處理回調,需重載

ccTouchesEnded   彈起按鍵處理回調,需重載

layerWithColorWidthHeight    用顏色初始化函數

 

CCMenu 菜單類,主要用於添加按鈕,處理案件消息。CCMenuCClayer派生而來,可以處理輸入消息,CCMenu包含多個CCMenuItem對象,在接收到輸入消息之後,根據觸摸位置,將輸入消息分發到相應MenuItem,執行回調函數。

CCMenuItem 菜單項的基類,目前cocos2d只從CCMenuItem派生了CCMenuItemLabel,CCMenuItemSprite,CCMenuToggle三個類.當然也可以派生新的類,實現其它的菜單項,例如 checkbox等.

主要函數:

menuWithItems

例子:

CCMenuItemSprite * timerItem = CCMenuItemSprite::itemFromNormalSprite(

                 CCSprite::spriteWithFile("tomorrowVisit/syyd-ui_07a.png"),

                 CCSprite::spriteWithFile("tomorrowVisit/syyd-ui_07a.png"));

             timerTomorrowVisitButton= CCMenu::menuWithItem(timerItem);

             timerItem->setTarget(this, menu_selector(UserStateLayer::buttonTomorrowVisitAction));

CCScheduler 類似於定時器,遊戲從開始就一直有一個公用的定時器在後臺運行,通過CCScheduler::sharedScheduler()可以獲取,可用於定時執行某些任務

主要函數:

scheduleSelector 定時執行回調

scheduleUpdateForTarget      定時執行update函數,需重載

unscheduleSelector       取消定時執行回調

unscheduleUpdateForTarget         取消執行update函數

unscheduleAllSelectorsForTarget   取消目標的所有定時回調

unscheduleAllSelectors   取消所有定時回調

pauseTarget  暫停目標的定時回調

resumeTarget 恢復目標的定時回調


CCSprite:精靈類,主要用於圖像的繪製

主要函數:

spriteWithTexture    通過紋理創建精靈

spriteWithSpriteFrameName    通過已經加載的大圖裏面的小圖名字創建精靈

spriteWithFile   通過文件創建精靈

addChild     增加子節點

removeChild  刪除子節點

setPosition  設置位置

setPositionInPixels  設置像素位置

setRotation  設置旋轉角度

setSkewX 設置x軸扭曲

setSkewY 設置y軸扭曲

setScaleX        設置x軸縮放

setScaleY        設置y軸縮放

setScale     設置等比例縮放

setAnchorPoint   設置描點

setIsVisible 設置是否可見

setFlipX     設置x軸翻轉

setFlipY     設置y軸翻轉

setContentSizeInPixel    設置佔用大小

 

例子:

CCSprite * textTake = CCSprite::spriteWithFile("tomorrowVisit/ui_icon_19.png");

        textTake->setPositionInPixels(ccp(16,32));

        textTake->setAnchorPoint(ccp(0,0));

        timerOnlineRewardText->addChild(textTake);

CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("UIState/UIStateDeNA.plist");

CCSprite *sp1 = CCSprite::spriteWithSpriteFrameName("ui_icon_15a.png");


CCLabelTTF:文字類,主要用戶顯示文字

常用函數:

labelWithString  通過char型數字初始化文字

setString        設置修改文字

getString        獲取文字

例子:

CCLabelTTF* freeNum = CCLabelTTF::labelWithString(DENA_PRE_FREE_NUM, CCSizeZero,CCTextAlignmentLeft, "Marker Felt", 20);

 

CCLabelBMFont:另外一種文字類,類似於圖片狀文字。主要用於數字字符的顯示,一般數字是美工做好的圖片,通過特定工具比如bmfont生成.fnt文件。

主要函數:

labelWithString  初始化字串

setString        設置字串

getString        獲取字串

例子:

CCLabelBMFont* nNumLable1;

    nNumLable1= CCLabelBMFont::labelWithString("0", "Font/RedFont1.fnt");

    nNumLable1->setPosition(ccp(26,7));

    numBg1->addChild(nNumLable1);

 

動作:action,CCAction,動作類,CCAtion就好像指派給CCNode的命令一樣,在特定時間(或立即)內修改CCNode的屬性,例如位置,旋轉,縮放等,主要用於動畫效果

常用的包括:

CCSequence:序列

CCSpawn:綜合

CCRotateTo:旋轉到

CCRotateBy:旋轉

CCMoveTo:移動到

CCMoveBy:移動

CCScaleTo:縮放到

CCScaleBy:縮放

CCFadeIn:淡入

CCFadeOut:淡出

CCSkewTo:扭曲到

CCSkewBy:扭曲

CCJumpBy:跳動

CCBezierBy:bezier曲線

以下是一個例子

CCFiniteTimeAction *act1= CCMoveBy::actionWithDuration(0.8,ccp(0, 56));

        CCFiniteTimeAction*act2 = CCFadeTo::actionWithDuration(0.8,0);

        CCFiniteTimeAction*spawnAct = CCSpawn::actions(act1, act2, NULL);

 

iconOnlineRewardFly->runAction(CCSequence::actions(

             spawnAct,

             CCCallFunc::actionWithTarget(this,callfunc_selector(UserStateLayer::onlineRewardFlyOver)),

             NULL));

 

Act1表示向上移動56像素,act2表示淡入到0.8的透明度,spawnAct表示兩者的綜合。

此外還有一個序列,表示執行完動畫之後執行UserStateLayer::onlineRewardFlyOver函數。

 

 

發佈了32 篇原創文章 · 獲贊 23 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章