所以我很高兴开始使用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 ×1