2D游戏开发 - SkyGameEngine2d坐标系
SkyGameEngine2d - 探索 简洁 易用 ,一款适合游戏入门学习的2d游戏引擎
项目地址 https://gitee.com/xfcode/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)
便是锚点在节点左下角的位置。
节点默认的锚点在节点的左下角,不同类型的节点锚点默认位置不同,如下表所示。
六、精灵在图片纹理种的位置坐标
引擎支持从一张大的纹理图片中指定一块矩形区域作为精灵的纹理,那么描述这块区域同样需要坐标系。引擎约定以纹理的左下角
为坐标系的原点,x 轴
向右递增,y轴
向上递增。如图所示,开始按钮的区域Rect 左下角为(0,0)宽高为(250,70)。
本节完
最后更新时间: 2019-05-28 17:23:51