自我感覺對anchor的理解沒問題了,但今天被另外乙個問題糾結進去了,這裡先做小總結,後面會說到那個問題。
假設有乙個ccsprite a,則:
1. anchor是乙個cgpoint,取值在(0.0f, 0,0f) 到 (1.0f, 1.0f)之間。
2. (0.0f, 0.0f)是這個ccsprite矩形區域的左下角,(1.0f, 1.0f)是右上角。
3. anchor決定了這個sprite的position指的是中哪個部分的位置,比如anchor在(0.0f, 0.0f),position在(100, 100),則這個sprite的左下角將被放在(100, 100)。
4. anchor決定對這個sprite進行旋轉的原點。
5. anchor決定了對這個sprite進行縮放的原點。
問題來了,假設有乙個ccsprite b,且a是b的child。
那麼當a.position為(0,0) ,且a和b的anchor都是(0.5f, 0.5f)的時候,a會在b的什麼位置呢?
廢了半天勁,其實就是乙個概念上被混淆了,那就是我理所應當的認為b的anchor會是a的position的原點(基點),而實際a的position的原點不受b的anchor的影響,一律都在左下角。
這也就是為什麼,我們要在layer中心建立乙個sprite時,要計算winsize,並把position設定為winsize寬高為一半了。
今天使用了大量cclayercolor為容器巢狀做ui,發現了另外一些問題,就是cclayer的anchor與ccsprite的區別:
1. cclayer的anchor不會影響這個layer的position是自己的哪個角放在父容器上,也就是說,無論cclayer的anchor為何值,position的值都是這個cclayer的左下角的位置。
2. 除了1以外,cclayer的anchor的功能和ccsprite相同。
下面是嘗試用的**,通過修改幾個引數值可以很快的了解anchor:
-(id) init
return
self;
}
cocos2d的anchor小總結和小糾結
posted on 2011 06 09 20 13 justinwong 閱讀 281 編輯收藏 自我感覺對anchor的理解沒問題了,但今天被另外乙個問題糾結進去了,這裡先做小總結,後面會說到那個問題。假設有乙個ccsprite a,則 1.anchor是乙個cgpoint,取值在 0.0f,0...
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...