gpt4 book ai didi

libgdx - 了解 LibGDX 坐标系和绘制 Sprite

转载 作者:行者123 更新时间:2023-12-04 04:05:40 26 4
gpt4 key购买 nike

因此,我非常兴奋地开始使用 LibGDX 作为 OUYA 和 PC 的第一个 android 标题,但我在使用 LibGDX 时遇到了一些障碍。 (我所有的问题都可以通过查看源代码来回答,但我也确实在尝试理解设计选择)。

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

camera = new OrthographicCamera(1, h/w);

根据我的阅读,我了解到 LibGdx 将左下角用于 0,0 和 yUp。美好的。
我发现如果我愿意,很容易更改为 y down,但我不理解创建的下一段代码。

对于创建的默认 Sprite ,位置设置如下。
logoSprite.setOrigin(logoSprite.getWidth()/2, logoSprite.getHeight()/2);
logoSprite.setPosition(-logoSprite.getWidth()/2, -logoSprite.getHeight()/2);

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

我的下一个问题是 sprite.setSize 与 sprite.setScale。为什么两者之间有区别? (他们似乎做同样的事情,除了 setScale 保持 getWidth 和 getHeight 不变)。

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

附带说明一下,我有游戏开发和数学背景,并且使用 XNA 制作了几款 2D 和 3D 游戏。我发现 LibGdx 有点令人沮丧,因为它并没有像我期望的那样抽象出 OpenGL,而且到目前为止,我一直在试验的 2D 绘图似乎比它应该的更令人困惑!

我还想指出,我计划在我的动画中使用脊椎。这是否应该改变我使用 y-up 或 y-down 的选择?

最佳答案

如果您想在屏幕中心绘制 Sprite ,请在您的 create 方法中执行此操作

logosprite.setposition(scrw/2-logosprite.getwidth()/2,scrh/2-logosprite.getheight/2);

这里的 scrw 是你的视口(viewport)的宽度,

并且 sch 是您的视口(viewport)的高度,

这样你的 Sprite 就会在屏幕的中心
sprite.setsize用于设置 Sprite 的大小和 sprite.setscale当我们缩放大/小纹理以使其质量在所有设备(hdpi.mdpi、xhdpi、ldpi)中保持良好时使用。

如果您使用的是 spin,则无需担心它在 libgdx 中运行顺畅。

关于libgdx - 了解 LibGDX 坐标系和绘制 Sprite ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19350101/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com