有關cocos2d的錨點問題

2021-06-23 00:29:02 字數 3385 閱讀 6137

現在知道錨點cc.p(0,0)代表的是預設的左下角,cc.p(0.5,0.5)則是以物體中心點為座標點,cc.p(1,1)代表右上角。

錨點被用在乙個物件的定位和旋轉。錨點座標是相對座標,舉例來說,在cocos2d中簡化定義為cc.p(0,0)的錨點對應於那個物件的左下角, 同時cc.p(0.5,0.5)對應於物件的中心。當設定乙個物件的位置時,這個物件被定位以致於錨點會位於setposition()函式呼叫所指定的座標。同樣地,當旋轉乙個物件,它是繞著錨點旋轉的。

例如,這個精靈有乙個cc.p(0,0)的錨點和乙個cc.p(0,0)的位置。

1

2

3

4

5

6

7

8

9

// create sprite

var sprite = cc.sprite.create ("bottomleft.png") ;

sprite.attr();

this.addchild ( sprite ) ;

錨點是定位和變換操作的乙個重點。錨點我們可以看成用一根圖釘將一張紙或者相片釘在牆上的那個點。

節點的位置是由我們設定的position

和anchor point

一起決定的。

值得一提的是,anchor point

的預設位置

layer

的是左下,而其他的

node

是中點。

節點的原點是父節點的左下角。

可見layer

的錨點是左下角,節點的原點是父節點的左下角。

再看乙個:

[cpp]view plain

copy

ccsprite *p1 = ccsprite::create(

"helloworld.png"

, ccrectmake(100, 100, 100, 100));  

ccsprite *p2 = ccsprite::create("girl1.png"

);  

addchild(p1);  

p1->addchild(p2);   //p2作為p1的子節點

setposition(200,200);  // layer 的原點移到200,200

設定錨點:

layer和

sprite

有不同,

layer

要設定錨點,必須先:ignoreanchorpointforposition(false);

而sprite

不用設定即可。

和前面第三個圖比較一下就了解了。小女孩的錨點已經到了紅色點位置

cocos2d使用問題

最近在使用3.6版本的richtext遇到getcontentsize的時候會是 var richtext new ccui.richtext richtext.ignorecontentadaptwithsize false richtext.setcontentsize cc.size 500,...

cocos2d實現語音 Cocos2d 聲音API

param url 聲音路徑 cc.audioengine.playmusic url loop 停止背景 param releasedata 是否釋放聲音資料,預設為false cc.audioengine.stopmusic releasedata 暫停背景 cc.audioengine.pau...

cocos2d筆記 cocos2d的單例模式

cocos2d充分使用了單例設計模式,這裡有必要提及它是因為它是經常是討論熱點。大體上說,乙個singleton是乙個類,它在應用使用期中僅僅例項化一次。為了確保如此,就要使用乙個既建立又訪問此物件例項的靜態方法。因此,你不使用alloc init或者靜態自動釋放初始化器 static autore...