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 菜單類,主要用於添加按鈕,處理案件消息。CCMenu從CClayer派生而來,可以處理輸入消息,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函數。