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