cocos2d 座標系的轉換

2022-08-13 09:54:16 字數 962 閱讀 6945

許久之後遇到問題,立馬又來發了一篇。這次的內容跟c++無關,是有關cocos2d的乙個小技術點————本地座標與世界座標

在cocos中有兩種座標系——本地座標系和世界座標系。

本地座標系:

這個座標系是基於節點以及層的座標系,例如有兩個節點——node1和node2,node1在layer中,node2在node1中,那麼獲得的node1座標是世界座標系,獲得node2座標是本地座標(兩座標是相互獨立的),這裡暫不討論錨點,均為預設值。

在layer中原點是(0,0),在節點node1中原點是(0.5,0.5)。。。有點小偏離話題。

最近在工作上遇到乙個問題,做乙個效果,從乙個點移動到另乙個點,除了動作用cc.moveto之外,其次還需要知道起始點以及終點,但是因為是動態改變,並不能使用固定數值,而具體的是從乙個層的中點移動到乙個節點的位置,但是麻煩的是這個節點跟這個層並不是父子關係,哎,傷腦經。。。

有人提供了兩個方法讓我去了解一下converttoworldspace、converttonodespace,這裡不談後者(因為沒用到。。。汗,沒錯,是小博懶)。

converttoworldspace將座標轉換成世界座標,那麼該怎麼使用呢???

第一種:node1:converttoworldspace(node1:getposition(cc.p(0,0)))

第二種:node1:getparent():converttoworldspace(node1:getposition())

這兩種都是可行的,首先解釋一種

很明顯節點座標轉換成世界座標,以節點為參照,通過轉換本地座標原點(上文有講述,在節點中的是本地座標),獲得的型別為世界座標型別。

第二種方法

與第一種相比,參照物成了父層,而在此例中父層是layer,它的座標是世界座標,因此獲得的型別為世界座標型別。

蒼白的文字至此結束,小博還會將自己遇到的問題逐漸的更新上來,希望對大家有所幫助,並且如有解釋不到位之處,希望多多指正!!

cocos2d中的座標轉換

先說下世界座標跟本地 把世界座標轉換到當前節點的本地座標系中 point converttonodespace constpoint worldpoint const 把基於當前節點的本地座標系下的座標轉換到世界座標系中 point converttoworldspace constpoint no...

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...