ZOder:
1、是描述渲染順序的值,每個CCNode都有ZOder,默認是0。
2、ZOder越大則越後面繪制、如果ZOder值相同,那麼看arrival(全局變量每次加一)順序,先加入的節點先繪制,ZOder只在相同父節點的節點直接進行比較
tag:是一個節點的身份證,方便通過getChildByTag來獲取節點對象,它的意義在於減少成員變量
TAG只在相同父節點的節點之間有效
TAG在相同父節點的兒子之間不能相同,相同情況cocos不報錯,getChildByTag可能會獲取到不是你想要的CCNode
一般用枚舉表示TAG以防止重復
TAG有時候用來當ID使用
場景切換
CCDirector
runWithScene 運行場景
replaceScene 切換場景 原場景釋放
pushScene 切換場景 原場景保留
popScene 與push配合使用 切換
pause 暫停
resume 這個我忘記了
end 結束
精靈創建
1、通過文件直接創建精靈
CCSprite *sprite = CCSprite::create();
2、通過紋理去創建精靈
CCTexture2D *texture = CCTextureCache::sharedTextureCache()->addImage("blocks.png");
CCSprite *sprite = CCSprite::createWithTextrue(texture);
3、通過精靈幀創建精靈
CCSprtieFrame *frame = CCSprtieFrame::createWithTexture(texture, CCRectMake(0, 0, 80, 80));
CCSprite *sprite = CCSprite::createWithSpriteFrame(frame);
4、通過精靈幀緩存創建精靈
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFrame(frame, "MyFrame");
CCSprite *sprite = CCSprite::createWithSpriteFrameName("MyFrame");
三個特殊層
CCLayerColor 可以改變背景,可以設置大小
CCLayerColor *layer = CCLayerColor::create(ccc4(255, 0, 0, 255), winSize.weith/2, winSize.height/2);
CCLayerGradient 有漸變效果的層(顏色、透明度、方向)
CCLayerGradient *layer = CCLayerGradient::create(ccc4(0, 255, 0, 0), ccc4(0, 0, 255, 255));
CCLayerMultiplex 很少用,可以包含好幾個層,但是只顯示其中一個
CCLayerMultiplex *multi = CCLayerMulitiplex::create(layer1, layer2, NULL);
multi->switchTO(1); // 顯示layer2
坐標體系
GL坐標體系:左下角為原點
UI最標體系:左上角為原點
世界坐標體系:是窗口的坐標體系,它是GL坐標體系,原點在窗口的左下角
節點坐標體系:是Node的坐標體系,它也是GL坐標體系,和世界坐標體系不同的是,它的原點是節點的左下角。
一個節點調用setPosition時,使用的參數是它的父節點(渲染樹)的坐標體系。
CCLayer默認大小和窗口一樣,所以坐標體系和世界坐標體系重合。
CCScene默認大小和窗口一樣,所以坐標體系和世界坐標體系重合。
GL坐標和世界坐標之間的轉換
CCDirector::sharedDirector()->convertToUI();
CCDirector::sharedDirector()->convertToGL();
世界坐標和節點坐標之間的轉換
CCNode::convertoNodeSpace(CCPoint ptInWorld);
CCNode::convertoWorldSpace(CCPoint ptInNode);
按照錨點為原點來進行轉換
CCNode::converToNodeSpaceAR(CCPoint ptInWorld); 返回NODE坐標,以錨點為原點
CCNode::converToWorldSpaceAR(CCPoint ptInNode);
用touth作為參數轉換
CCNode::convertTouchToNodeSpace 直接將觸摸轉換成節點坐標系的坐標