標籤:style blog http tar com get
Cocos2d-x v3.1 座標系統(五)
為了能夠更好的布局以及瞭解對象所在的位置,我們必須對Cocos2d-x中的座標有詳細的瞭解,本篇文章主要就是瞭解Cocos中用到的座標系統。學過數學的人都知道“笛卡兒座標系統”,在“笛卡兒座標系統”中又分為了左手座標系和右手座標系。我們所瞭解的Direct3D和OpenGL分別使用了“左手座標系統”和“右手座標系統”,那Cocos2d-x使用的是什麼樣的做座標系統呢?由於Cocos2d-x是基於OpenGL開發的當就使用了右手座標系統。由於Cocos2d-x是一個2D的遊戲引擎所有我們只用到了X和Y軸。
前面只是普及了哈座標系統的概念,那究竟在Cocos2d-x中有幾個座標系統呢?
1. OpenGL座標系
座標原點在螢幕的左下方,X軸向右為正,Y軸向上為正。如:
圖.1
2. 全局座標系
也叫絕對座標系,原點與OpenGL座標系原點位置一致。“世界”指遊戲世界,它建立了描述其他座標系所需要的參考標準。.1
3. 螢幕座標系統
也叫UI座標系,主要用於我們在觸控螢幕幕時,那個觸摸點就是傳入的螢幕座標,原點在左上方X軸向右為正,Y軸向下為正。
圖.2
4. 本地座標系
也叫相對座標系,它是相對於父節點的。它的座標原點在父物件的左下角。假設我們在情境中有兩個對象Node1和Node2.Node1是Node2的父節點,Node1的位置是Vec2(200, 200)。Node2的位置為Vec(0,0),錨點為Vec2(0.5, 0.5),此時Node2的位置就是相對位置,它是相對於Node1的。效果.3所示:
圖.3
錨點
錨點就是對象(Node及派生對象)的一個錨點,我們對於對象的定位,旋轉都是基於錨點的。預設對象的錨點是Vec2(0.5, 0.5)也就是在對象的中心。如.4所示:
圖.4
中間那個紅點就是錨點,當然我麼也可以把錨點設定到其他位置。比如我們將它的錨點設定為Vec2(0, 0)。也就是對象的左下角。.5所示:
圖.5