一、引言
在cocos2d-x的開發過程中,經常會碰到設定精靈位置的問題。而設定位置的過程,涉及到兩個問題:第一是座標系,包括原點的位置、x/y座標軸的方向燈;第二是基準點(cocos2d-x中叫錨點),即精靈旋轉的時候,以哪個點為軸心;下面我們將逐一來分析這兩個問題。
二、正文
1. 座標系
cocos2d-x中,座標系包括:opengl座標系、世界座標系、節點相對座標系、仿射變換等,這些座標系的原點都是在螢幕的左下角、x軸向右、y軸向上。
1.1 opengl座標系
螢幕座標系的原點在螢幕的左上角、x軸向右、y軸向下。螢幕觸擊時間cctouch傳入的位置資訊就是該座標系,因此cocos2d-x在對螢幕觸控事件做出響應前,需要使用ccdirecotr::converttogl()方法,將觸控點轉化為opengl座標系。
1.2 世界座標系
也叫絕對座標系,是遊戲開發中建立的概念,世界是指遊戲世界。cocos2d-x中的元素都是父子關係的層級結構,通過ccnode設定位置使用的是相對其父節點的本地座標系,最後繪製螢幕的時候,會將本地節點座標對映成世界座標系。
1.3 節點座標系
節點座標系是和特定節點相關聯的座標系,每個節點都有獨立的座標系。當節點移動或者改變方向的時候,和該節點相關聯的座標系(子節點)會隨之一起移動或改變方向。ccnode類中設定位置使用的就是父節點的節點座標系,它有兩個函式可以轉換座標:
converttoworldspace:把基於當前節點的本地座標系轉換為世界座標系;不基於錨點,如果基於錨點應該使用converttoworldspacear;
converttonodespace:把世界座標系轉化為當前節點的本地座標系;不基於錨點,如果基於錨點應該使用converttonodespacear;
1.4 仿射變換
2. 錨點
通俗點說,錨點就是你在ccnode中,使用貼圖的基準點。預設錨點為(0.5, 0.5)。
精靈在進行運動的過程中,都需要乙個錨點,比如在旋轉的過程中,設定的錨點不一樣,旋轉效果是不一樣的。比如使用預設錨點,精靈是以中點為軸心旋轉;使用(0, 0)作為錨點,精靈是以左下角為軸心旋轉;使用(1, 1)作為錨點,精靈是以右上角為軸心旋轉。
三、小結
這些都是基本的概念,有空的時候,我會附上詳細的例項**和效果圖。
Cocos2D X掃盲之座標系 錨點
一 引言 在cocos2d x的開發過程中,經常會碰到設定精靈位置的問題。而設定位置的過程,涉及到兩個問題 第一是座標系,包括原點的位置 x y座標軸的方向燈 第二是基準點 cocos2d x中叫錨點 即精靈旋轉的時候,以哪個點為軸心 下面我們將逐一來分析這兩個問題。二 正文 1.座標系 cocos...
cocos2d x之詳解座標系
分類 cocos2d,人生 172 瀏覽數 6在幾何體系中通常使用 笛卡爾 座標系來描述座標,就像下圖展示的那樣,通過左手或是右手來描述座標系。但是在手機遊戲開發中,介面ui座標系有以下三種型別 ui座標系 在ios android windows sdk這些系統平台場,通常使用的ui座標系定義如下...
cocos2d x中的座標系
最關鍵的是觸控事件得到的是螢幕座標系 座標系的原點在左下 uikit to opengl ccpoint converttogl const ccpoint obpoint opengl to uikit ccpoint converttoui const ccpoint obpoint ccspr...