Libgdx 坐标系

教程总目录: http://blog.csdn.net/zqiang_55/article/details/50878524

Libgdx是基于OpenGL ES的,因此对于初次接触的libgdx坐标系的人往往感觉错综复杂,无从下手,因此本文翻译了wiki的文章,水平有限,可看原文

Touch coordinates

  • Units: pixels
  • System: y-down
    • Type: integer, can’t be fractional
    • Range: (0,0) (upper left corner) to (Gdx.graphics.getWidth()-1,Gdx.graphics.getHeight()-1) (lower right corner)
    • Usage: touch/mouse coordinates
    • Dependence: device specific
      这里写图片描述
      Touch coordinates坐标系在app中也是经常用到,点击屏幕/鼠标都会给出的值都是这个坐标系的。 从上面给出的值可以看出它是从左上角开始,到右下角。由于坐标系的每一对值都代表物理像素,因此值不能是小数。
      在实际开发中经常会用到下面函数来将Touch坐标系转换为World坐标系
camera.unproject or viewport.unproject

Screen or image coordinates

* Units: pixels

* System: y-up
* Type: integer, can’t be fractional
* Range: (0,0) (lower left corner) to (Gdx.graphics.getWidth()-1, Gdx.graphics.getHeight()-1) (upper right corner)
* Usage: viewport, scissors and pixmap
* Dependence: device/resource/asset specific
Screen坐标系实际上也是表示屏幕的像素坐标,有时候也表示内存中图像的索引,因此也只能是整数,不能是小数。screen坐标转换为touch坐标y = Gdx.graphics.getHeight() - 1 - y;
只有当操作glViewport, glScissor和Pixmap才会使用这种坐标系,可以使用下面方法可以将world坐标系转换为screen坐标系

camera.project and viewport.project

Pixmap and texture coordinates

Pixmap坐标系不太符合OpenGL 坐标系。Pixmap通常用来上传纹理数据。例如当加载PNG图像到纹理时,首先解码到Pixmap,之后再拷贝到GPU在屏幕上渲染。OpenGL希望纹理数据是image坐标系,即y-up。然而,大多数图像格式保存了图像数据其y轴方向y-down.Libgdx不会转换这两种坐标系。还会保持Pixmap和Texture的y的方向u-down.
未来补偿y-down,SpriteBatch翻转textuer的UV坐标
###Normalized render coordinates
* Units: one
* System: y-up
* Type: floating point
* Range: (-1,-1) (lower left corner) to (+1,+1) (upper right corner)
* Usage: shaders
* Dependence: none

Normalized texture (UV) coordinates

  • Units: one
  • System: y-up
  • Type: floating point
  • Range: (0,0) (lower left corner) to (1,1) (upper right corner)
  • Usage: shaders, mesh, texture region, sprite
  • Dependence: none

World coordinates

  • Units: application specific, e.g. SI Units
  • System: application specific, but usually y-up
  • Type: floating point
  • Range: application specific
  • Usage: game logic
  • Dependence: game/application
    这里写图片描述
    实在翻译不下去了,有空再翻译
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值