[ios5 cocos2d遊戲開發實戰] 筆記1

1  ios設備加載文件區分大小寫,模擬器不會,習慣使用統一的文件命名方式,統一小寫字母。ios

2  避免使用固定位置,以適應不一樣屏幕尺寸。函數

3  不要魔鬼數字,定義常量spa

 

數學類:.net

ccp 系列:CCPoint 加減乘除,投影,距離,旋轉
CCARRAY_FOREACH,CCARRAY_FOREACH_REVERSE

CCArray,CCDictionarycode

CCRelease系列:對象

  CC_SAFE_DELETE(p);         // 當p不爲NULL,delete p 而且將 p 賦爲 NULL
    CC_SAFE_DELETE_ARRAY(p);   // ...delete[] p..
    CC_SAFE_FREE(p);           // ...free p ...

    CC_SAFE_RELEASE(p);        // 當p不爲NULL,p->release()
    CC_SAFE_RELEASE_NULL(p);   // 當p不爲NULL,p->release() 而且將 p 賦爲 NULL
    CC_SAFE_RETAIN(p);         // 當p不爲NULL,p->retain()

 

CC_PROPERTY系列:blog

這些方法的聲明所有都是virtual的,即使是內聯,聲明爲virtual的方法也不會產生內聯函數遊戲

class Ship: public cocos2d::CCNode
    {
// 定義一個int類的屬性m_energy變量,該變量訪問權限是protected。 //後面的方法名Energy,即聲明瞭一個int getEnergy() 和一個 void setEnergy(int value)的方法,具體實現須要本身在cpp中定義 CC_PROPERTY(int, m_energy, Energy); // 基本與上相同,可是get方法傳引用,即聲明瞭一個 int& getEnergy(); CC_PROPERTY_PASS_BY_REF(int, m_energy, Energy); // 一樣定義變量,可是隻發聲明 get 方法,具體實現須要本身在cpp中定義 CC_PROPERTY_READONLY(int, m_energy, Energy); CC_PROPERTY_READONLY_PASS_BY_REF(int, m_energy, Energy); // 一樣定義變量,而且直接定義默認的get/set方法。類似的也有前4類 CC_SYNTHESIZE(cocos2d::CCObject*, m_weapon, Weapon); CC_SYNTHESIZE_PASS_BY_REF(cocos2d::CCObject*, m_weapon, Weapon); CC_SYNTHESIZE_READONLY(cocos2d::CCObject*, m_weapon, Weapon); CC_SYNTHESIZE_READONLY_PASS_BY_REF(cocos2d::CCObject*, m_weapon, Weapon); // 在setWeapon的時候,調用原有m_weapon的release,而且調用新值的的retain。固然已經排除了意外狀況(相等或者NULL之類的)。 CC_SYNTHESIZE_RETAIN(cocos2d::CCObject*, m_weapon, Weapon); };

 

CCNode:圖片

CCDirector:ip

參考連接:http://blog.csdn.net/jackystudio/article/details/12554167

整個遊戲中只有一個導演;(1)在開始遊戲和結束遊戲時負責遊戲的初始化和銷燬工做。(2)管理遊戲的關卡,即場景。負責各個場景之間的切換。(3)設置、獲取系統信息

CCCamera

CCScene

CCNode子類,CCScene中存放的是須要渲染的層、人物角色和菜單等。它們能夠做爲一個總體,一塊兒渲染,一塊兒銷燬,一塊兒被場景切換是用,主要函數create,init.
在每個遊戲中,場景能夠由許多層構成,每一層負責各自不一樣的任務,例如專門負責顯示背景、專門負責顯示道具和專門負責顯示任務等。而在每一層上面,又能夠添加不一樣的元素,如文本、精靈和菜單等。經過層與層之間的組合關係,就能讓遊戲顯示出各類各樣的界面了。固然爲了看得清每一層上的東西,不少層都設置成透明或者半透明,不然只能看到最上層的東西了

CCLayer

CCSprite

精靈CCSprite是整個遊戲開發處理的主要對象, 精靈就是一個能夠不斷變化的圖片,變化包括位置變化、旋轉、放大、運動等等
CCSprite的建立:
1. CCSprite * pSprite = CCSprite::create();//返回一個不帶紋理的空CCSprite對象
2. CCSprite * pSprite = CCSprite::create("xxx.jpg");
3. 經過指定圖片文件名並給出圖片顯示區域create (const char *pszFileName, const CCRect &rect),第二個參數是CCRect對象的引用。
CCSpriteFrame * pFrame = CCSpriteFrame::create("xxxx.jpg",rect);
CCSprite * pSprite3 = CCSprite::createWithSpriteFrame(pFrame);
4. 經過指定CCTexture2D材質對象來建立createWithTexture (CCTexture2D *pTexture)或者createWithTexture(tex,rect)

 

CCAction

主要分爲三大類,CCFiniteTimeAction(有限次動做執行類)、CCSpeed(節點執行速度類)、CCFollow(節點跟隨另外一個節點移動). 主要用到的是CCFiniteTimeAction類,CCFiniteTimeAction分爲CCActionInstant(瞬時動做)和CCActionInterval(延遲動做),其中CCActionInstant動做沒有執行過程,動做瞬時完成,而CCActionInterval動做執行須要必定的時間(或者一個過程).
其中經常使用的
(1) CCMoveTo / CCMoveBy 移動二者的主要差異在於CCMoveTo是移動到指定座標,CCMoveBy是相對座標.
(2) CCScaleTo / CCScaleBy 縮放
(3) CCRotateTo / CCRotateBy 旋轉
(4) CCSkewTo / CCSkewBy 扭曲
(5) CCJumpTo / CCJumpBy 跳躍
(6) CCBezierTo / CCBezierBy 貝塞爾曲線
(7) CCBink 閃爍
(8) CCFadeIn / CCFadeOut 淡入淡出
(9) CCTintTo / CCTintBy 染色
例子
CCSprite *heroSprite = CCSprite::create(「hero.png」);
CCMoveTo *move = CCMoveTo::create(2.0f, ccp(50, 50));
heroSprite->runAction(move);

 

Schedule

 

 

參考連接:http://blog.csdn.net/jackystudio/article/details/10895931

相關文章
相關標籤/搜索