小编jjh*_*okk的帖子

了解LibGDX坐标系和绘制精灵

所以我很高兴开始使用LibGDX作为我的第一个OUYA和PC的机器人标题,但我遇到了一些与LibGDX的障碍.(我的所有问题都可以通过查看来源来回答,但我真的想要了解设计选择).

首先,坐标系.我使用Project Setup jar创建了一个项目,它创建了一个OrthographicCamera

camera = new OrthographicCamera(1, h/w);
Run Code Online (Sandbox Code Playgroud)

从我的阅读中,我知道LibGdx使用左下角为0,0和yUp.精细.我知道如果我愿意,可以很容易地改为y,但我不理解创建的下一段代码.

对于创建的默认子画面,位置设置如此.

logoSprite.setOrigin(logoSprite.getWidth()/2, logoSprite.getHeight()/2);
logoSprite.setPosition(-logoSprite.getWidth()/2, -logoSprite.getHeight()/2);
Run Code Online (Sandbox Code Playgroud)

当我运行这个基本程序时,我看到我添加的徽标图像位于屏幕中央.我想要了解的是为什么值在设置位置是负的,为什么它使用精灵宽度和高度而不是视图端口的图形w和h?如果我更改为屏幕宽度和高度,则图像将在屏幕右下角的某个奇数位置绘制.

我的下一个问题是sprite.setSize vs sprite.setScale.为什么两者之间存在差异?(它们似乎做同样的事情,除了setScale使getWidth和getHeight保持不变).

由于我的游戏将大量使用2D相机进行平移,缩放和旋转,因此我在尝试在开始编写任何代码之前尽可能多地了解libgdx框架.

作为旁注,我有游戏开发和数学背景,我使用XNA制作了几个2D和3D游戏.我发现LibGdx有点令人沮丧,因为它没有像我期望的那样抽象掉OpenGL,到目前为止,我一直在试验的2D绘图似乎比应该更加混乱!

我还想注意,我计划使用脊椎来制作动画.这会改变我选择使用y-up还是y-down?

libgdx

9
推荐指数
1
解决办法
1万
查看次数

标签 统计

libgdx ×1