Cocos2d-x v3.1 坐标系统(五)
Cocos2d-x v3.1 坐標(biāo)系統(tǒng)(五)
?
??? 為了能夠更好的布局以及了解對象所在的位置,我們必須對Cocos2d-x中的坐標(biāo)有詳細的了解,本篇文章主要就是了解Cocos中用到的坐標(biāo)系統(tǒng)。學(xué)過數(shù)學(xué)的人都知道“笛卡兒坐標(biāo)系統(tǒng)”,在“笛卡兒坐標(biāo)系統(tǒng)”中又分為了左手坐標(biāo)系和右手坐標(biāo)系。我們所了解的Direct3D和OpenGL分別使用了“左手坐標(biāo)系統(tǒng)”和“右手坐標(biāo)系統(tǒng)”,那Cocos2d-x使用的是什么樣的做坐標(biāo)系統(tǒng)呢?由于Cocos2d-x是基于OpenGL開發(fā)的當(dāng)就使用了右手坐標(biāo)系統(tǒng)。由于Cocos2d-x是一個2D的游戲引擎所有我們只用到了X和Y軸。
??? 前面只是普及了哈坐標(biāo)系統(tǒng)的概念,那究竟在Cocos2d-x中有幾個坐標(biāo)系統(tǒng)呢?
?
1. OpenGL坐標(biāo)系
??? 坐標(biāo)原點在屏幕的左下方,X軸向右為正,Y軸向上為正。如下圖:
?
??????????????????????????? 圖.1
2. 世界坐標(biāo)系
??? 也叫絕對坐標(biāo)系,原點與OpenGL坐標(biāo)系原點位置一致。“世界”指游戲世界,它建立了描述其他坐標(biāo)系所需要的參考標(biāo)準(zhǔn)。如圖.1
3. 屏幕坐標(biāo)系統(tǒng)
??? 也叫UI坐標(biāo)系,主要用于我們在觸摸屏幕時,那個觸摸點就是傳入的屏幕坐標(biāo),原點在左上角X軸向右為正,Y軸向下為正。
?
??????????????????????????????????? 圖.2
4. 本地坐標(biāo)系
??? 也叫相對坐標(biāo)系,它是相對于父節(jié)點的。它的坐標(biāo)原點在父對象的左下角。假設(shè)我們在場景中有兩個對象Node1和Node2.Node1是Node2的父節(jié)點,Node1的位置是Vec2(200, 200)。Node2的位置為Vec(0,0),錨點為Vec2(0.5, 0.5),此時Node2的位置就是相對位置,它是相對于Node1的。效果如圖.3所示:
??
?????????????????????????? 圖.3
錨點
??? 錨點就是對象(Node及派生對象)的一個定位點,我們對于對象的定位,旋轉(zhuǎn)都是基于錨點的。默認(rèn)對象的錨點是Vec2(0.5, 0.5)也就是在對象的中心。如下圖.4所示:
???????? 圖.4
中間那個紅點就是錨點,當(dāng)然我么也可以把錨點設(shè)置到其他位置。比如我們將它的錨點設(shè)置為Vec2(0, 0)。也就是對象的左下角。如圖.5所示:
???????? 圖.5
轉(zhuǎn)載于:https://www.cnblogs.com/qilezaitu/p/3810298.html
總結(jié)
以上是生活随笔為你收集整理的Cocos2d-x v3.1 坐标系统(五)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《转》程序员必须知道的10大基础实用算法
- 下一篇: 机房收费系统学生下机结账小结