2D游戏开发 - SkyGameEngine2d坐标系
2D游戲開發(fā) - SkyGameEngine2d坐標(biāo)系
- 一、DX11使用的坐標(biāo)系
- 二、屏幕坐標(biāo)系&窗口坐標(biāo)系
- 三、SkyGameEngine2d 坐標(biāo)系
- 四、世界坐標(biāo)系&局部坐標(biāo)系
- 五、錨點(diǎn)
- 六、精靈在圖片紋理種的位置坐標(biāo)
SkyGameEngine2d - 探索 簡潔 易用 ,一款適合游戲入門學(xué)習(xí)的2d游戲引擎
項(xiàng)目地址 https://gitee.com/xfcode/SkyGameEngine2d
QQ群號:498358732
加群鏈接:https://jq.qq.com/?_wv=1027&k=5odSA9K
示例游戲視頻鏈接:https://www.bilibili.com/video/av59147631/
更多文章見:SkyGameEngine2d 游戲引擎相關(guān)文章目錄匯總
我們在開發(fā)各種應(yīng)用程序時(shí),經(jīng)常會說到某個(gè)元素在那個(gè)坐標(biāo)位置。坐標(biāo)位置是相對某一個(gè)坐標(biāo)系而言的,在不同的坐標(biāo)系下相同的位置坐標(biāo)的表示也不盡相同。
理解SkyGameEngine2d引擎中涉及的坐標(biāo)系,才可以在游戲開發(fā)中正確的設(shè)置各種游戲元素的位置。
一、DX11使用的坐標(biāo)系
實(shí)際上存在2種完全不同的3D坐標(biāo)系 - 左手系、右手系 。DirectX11使用左手系,如下圖所示。
所謂左手系,伸出左手,讓拇指和食指成“L”形,大拇指向右,食指向上。其余的手指指向前方。拇指、食指、
其余手指分別代表x,y,z 。
二、屏幕坐標(biāo)系&窗口坐標(biāo)系
Windows屏幕坐標(biāo)系與窗口坐標(biāo)系為二維坐標(biāo)系,原點(diǎn)為左上角。x 軸向右遞增,y 軸向下遞增。
在引擎種如果要確定游戲窗口在桌面的位置時(shí),需要用到屏幕坐標(biāo),如果使用一些平臺的接口,屏幕坐標(biāo)系與窗口坐標(biāo)系很有用。
三、SkyGameEngine2d 坐標(biāo)系
引擎使用的坐標(biāo)系為二維坐標(biāo)系。原點(diǎn)為左下角,x 軸向右遞增,y 軸向上遞增。引擎坐標(biāo)與屏幕坐標(biāo)的對比如下圖所示。
四、世界坐標(biāo)系&局部坐標(biāo)系
世界坐標(biāo)系 同引擎坐標(biāo)系
局部坐標(biāo)系 也為相對坐標(biāo)系,是和節(jié)點(diǎn)相關(guān)聯(lián)的坐標(biāo)系,在引擎中節(jié)點(diǎn)時(shí)以樹的形式組成的,子節(jié)點(diǎn)的位置相對與父節(jié)點(diǎn)。節(jié)點(diǎn)的坐標(biāo)系原點(diǎn)為節(jié)點(diǎn)左下角。
引擎API Node::setPosition(const Vector2& pos); 設(shè)置的坐標(biāo)為當(dāng)前節(jié)點(diǎn)相對與父節(jié)點(diǎn)的位置坐標(biāo),即相對與父節(jié)點(diǎn)的坐標(biāo)系。
五、錨點(diǎn)
錨點(diǎn)為節(jié)點(diǎn)的參考點(diǎn),我們在設(shè)置一個(gè)節(jié)點(diǎn)的位置時(shí),實(shí)際上就是把這個(gè)節(jié)點(diǎn)的錨點(diǎn)設(shè)置到該位置。節(jié)點(diǎn)在縮放、旋轉(zhuǎn)、位移時(shí)都是以錨點(diǎn)為參考點(diǎn)進(jìn)行。
注意:
錨點(diǎn)的值為節(jié)點(diǎn)寬和高的比例。比如(0.5, 0.5)表示錨點(diǎn)在節(jié)點(diǎn)的中心,(0, 0)便是錨點(diǎn)在節(jié)點(diǎn)左下角的位置。
節(jié)點(diǎn)默認(rèn)的錨點(diǎn)在節(jié)點(diǎn)的左下角,不同類型的節(jié)點(diǎn)錨點(diǎn)默認(rèn)位置不同,如下表所示。
| (0, 0) | (0, 0) | (0.5, 0.5) |
六、精靈在圖片紋理種的位置坐標(biāo)
引擎支持從一張大的紋理圖片中指定一塊矩形區(qū)域作為精靈的紋理,那么描述這塊區(qū)域同樣需要坐標(biāo)系。引擎約定以紋理的左下角為坐標(biāo)系的原點(diǎn),x 軸 向右遞增,y軸向上遞增。如圖所示,開始按鈕的區(qū)域Rect 左下角為(0,0)寬高為(250,70)。
更多文章見:SkyGameEngine2d 游戲引擎相關(guān)文章目錄匯總
本節(jié)完
最后更新時(shí)間: 2019-05-28 17:23:51
總結(jié)
以上是生活随笔為你收集整理的2D游戏开发 - SkyGameEngine2d坐标系的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring 编程式事务实例
- 下一篇: Hexo--第一弹