1. 程式人生 > >cocos2dx中坐標系

cocos2dx中坐標系

getc con bsp 獲取對象 ccnode ret visible osi 沒有

CCNode類的setPosition,getPosition函數如果是一個Node的Child則獲取的坐標就是該Node的本地坐標

另一個關鍵問題就是在cocos2d-x裏就是各種對象的大小問題。因為在cocos2d-x裏CCNode對象有縮放的方法setScaleX和setScaleY。所以在獲取對象大小的時候必須根據情況明確指定獲取對象原始大小,還是縮放後的大小。當然cocos2d-x裏提供了對應函數來完成這些操作: getContentSize函數來獲得節點原始的大小。只是邏輯尺寸,不是像素; boundingBox函數來獲得經過縮放和旋轉之後的外框盒大小。 getContentSizeInPixels獲得的是像素點大小 像素點和邏輯點關系:邏輯點大小 = 像素大小/contentScaleFactor. getVisibleSize:獲得視口(可視區域)的大小,若是DesignResolutionSize跟屏幕尺寸一樣大,則getVisibleSize便是getWinSize。 getVisibleOrigin:表示可視區域的起點坐標,這在處理相對位置的時候非常有用,確保節點在不同分辨率下的位置一致。 坐標轉換: GL坐標系,cocos2d-x默認坐標系: CCPoint CCDirector::convertToGL(const CCPoint& uiPoint) { CCSize s = m_obWinSizeInPoints; float newY = s.height - uiPoint.y; } 屏幕坐標系: 默認原點在左上角 CCPoint CCDirector::convertToUI(const CCPoint& glPoint) { CCSize winSize = m_obWinSizeInPoints; float oppositeY = winSize.height - glPoint.y; return ccp(glPoint.x,oppositeY); } 兩種坐標的X方向沒有變,只變了Y方向,cocos2d-x裏默認的GL坐標系,即左下角為原點ccp(0.0f,0.0f)

cocos2dx中坐標系