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