首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> C++ 入門

cocos2d-x 學習筆記:ZOrder、Tag、場景切換、精靈創建、特殊層、坐標系

     編輯:C++ 入門

ZOrder(渲染順序)

  • 每個 CCNode 有 zOrder,默認 0;值越大越晚繪製(顯示在上層)。
  • 同 zOrder 時,按加入順序(全局 arrival 遞增)繪製,先加入先繪製。
  • 只在**同父節點**的子節點間比較。

Tag(節點標識)

  • 節點身份證,getChildByTag(tag) 快速獲取,減少成員變量。
  • 同父節點下 Tag 唯一;重複不報錯但獲取不可預期。
  • 建議用 enum 定義 Tag 常量。
  • 可作為業務 ID 使用。

場景切換 CCDirector

精靈創建四種方式

  1. 文件直接創建:CCSprite::create("file.png")
  2. 紋理創建:CCTexture2D* tex = CCTextureCache::sharedTextureCache()->addImage("img.png"); CCSprite::createWithTexture(tex)
  3. 精靈幀創建:CCSpriteFrame* frame = CCSpriteFrame::createWithTexture(tex, CCRectMake(0,0,80,80)); CCSprite::createWithSpriteFrame(frame)
  4. 精靈幀緩存:CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFrame(frame, "name"); CCSprite::createWithSpriteFrameName("name")

三個特殊層

  • CCLayerColor:純色背景,可設大小。create(ccc4(255,0,0,255), w/2, h/2)
  • CCLayerGradient:漸變層(顏色、透明度、方向)。create(ccc4(0,255,0,0), ccc4(0,0,255,255))
  • CCLayerMultiplex:容納多層但只顯示一層。create(layer1, layer2, nullptr); switchTo(1) 顯示第二層。

坐標系

  • OpenGL:左下角原點,Y 向上。
  • UI:左上角原點,Y 向下。
  • 世界座標 = 窗口座標 = OpenGL 座標,原點左下角。
  • 節點座標:以節點左下角為原點的 OpenGL 座標。
  • setPosition 參數使用**父節點**座標系。
  • CCLayer/CCScene 默認全屏,座標系與世界座標重合。

座標轉換 API

方法行為
runWithScene啟動首個場景
replaceScene切換場景,**舊場景釋放**
pushScene切換場景,**舊場景保留**(入棧)
popScene彈出當前場景,回到上一場景(配合 push)
pause/resume暫停/恢復導演器
end結束程序
轉換方法
世界 ↔ UICCDirector::sharedDirector()->convertToGL/UI()
世界 ↔ 節點node->convertToWorldSpace() / convertToNodeSpace()
以錨點為原點convertToWorldSpaceAR() / convertToNodeSpaceAR()
觸摸點直接轉節點node->convertTouchToNodeSpace(touch)

掌握座標系與轉換是 cocos2d-x 開發中處理觸摸、碰撞、UI 佈局的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved