cocos2dx 座標系統詳解

2021-12-29 21:40:08 字數 2363 閱讀 4804

1、在cocos2dx中,支援以下座標系:

● 螢幕座標系: 原點在左上角,x軸向右,y軸向下。(比如處理觸控事件時cctouch物件中的座標就是螢幕座標系)

● opengl座標系: 原點在左下角,x軸向右,y軸向上。(比如ccnode類的setposition函式呼叫就是此座標系)

● 世界座標系:指相對於整個螢幕的座標系,(0,0)就是螢幕的左下角

● 本地座標系:相對于父物件的座標。

2、錨點(anchorpoint)

● 一句話來描述就是:錨點我們可以看成用一根圖釘將一張紙或者相片釘在牆上的那個點。

● 錨點的x和y取值範圍在[0,1]之間。

● 精靈(sprite)的錨點預設為(0.5,0.5),預設是不忽略錨點的,所以

virtual bool isignoreanchorpointforposition();//預設返回false

● 其他節點比如說cclayer和ccsense,錨點預設為(0,0),預設是忽略錨點

virtual bool isignoreanchorpointforposition();//預設返回true

所以,如果要在cclayer和ccsense中設定錨點,要如下設定

cclayer* layer1 = cclayercolor::create(ccc4(255,0,0,255), 300, 200);

addchild(layer1);

layer1->ignoreanchorpointforposition(false);//設定不忽略錨點,此時錨點會變為預設的(0.5,0.5)

layer1->setanchorpoint(ccp(0,0));//然後再這裡設定自定義錨點

3 座標轉換,詳細解釋如下,應該已經說得很明白了。

ccsprite *sprite1=ccsprite::create("closenormal.png");

cclog("sprite1=(%f,%f)",sprite1->getcontentsize().width,sprite1->getcontentsize().height);

sprite1->setanchorpoint(ccp(1,1));

sprite1->setposition(ccp(20,40));

ccsprite *sprite2=ccsprite::create("closenormal.png");

sprite2->setposition(ccp(-5,-20));

sprite2->setanchorpoint(ccp(1,1));

ccpoint point1=sprite1->converttonodespace(sprite2->getposition());//以sprite1左下角為參考點(0,0)定位sprite2錨點的座標,並返回

ccpoint point2=sprite1->converttoworldspace(sprite2->getposition());//以sprite1左下角為參考點(0,0),定位(-5,20)這個點為sprite2錨點座標,並返回

ccpoint point3=sprite1->converttonodespacear(sprite2->getposition());//以sprite1的錨點為參考點(0,0),定位sprite2錨點的位置,並返回

ccpoint point4=sprite1->converttoworldspacear(sprite2->getposition());//以sprite1的錨點為參考點(0,0),定位定位(-5,20)這個點為sprite2錨點座標,並返回

cclog("point1=(%f,%f)",point1.x,point1.y);

cclog("point2=(%f,%f)",point2.x,point2.y);

cclog("point3=(%f,%f)",point3.x,point3.y);

cclog("point4=(%f,%f)",point4.x,point4.y);

輸出結果如下:

sprite1=(40.000000,40.000000) (大小)

point1=(15.000000,-20.000000)

point2=(-25.000000,-20.000000)

point3=(-25.000000,-60.000000)

point4=(15.000000,20.000000)

cocos2dx 座標系統詳解

1 在cocos2dx中,支援以下座標系 螢幕座標系 原點在左上角,x軸向右,y軸向下。比如處理觸控事件時cctouch物件中的座標就是螢幕座標系 opengl座標系 原點在左下角,x軸向右,y軸向上。比如ccnode類的setposition函式呼叫就是此座標系 世界座標系 指相對於整個螢幕的座標...

Cocos2d x的座標系統

三 螢幕座標系 opengl座標系 四 世界座標系 本地座標系 目標讀者 已經了解cocos2d x中結點樹的概念座標係用座標來定量描述物體的位置。同一物體在不同座標系下的座標不同。cocos2d x中各個座標系統的不同之處主要體現在原點位置的不同。座標系統 定義螢幕座標系 原點在左上角,x軸向右,...

cocos2d x之詳解座標系

分類 cocos2d,人生 172 瀏覽數 6在幾何體系中通常使用 笛卡爾 座標系來描述座標,就像下圖展示的那樣,通過左手或是右手來描述座標系。但是在手機遊戲開發中,介面ui座標系有以下三種型別 ui座標系 在ios android windows sdk這些系統平台場,通常使用的ui座標系定義如下...