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