java - LibGDX 1.5 围绕其中心旋转 Sprite

标签 java android rotation libgdx sprite

我正在尝试围绕其中心旋转 Sprite ,但无论我尝试什么,我总是让它绕着一个角旋转。我以这种方式创建 Sprite :

Pixmap pixmap = new Pixmap(64, 64, Format.RGBA8888);
pixmap.setColor(153/255f, 255/255f, 153/255f, 255/255f);
pixmap.fillTriangle(0, 0, 0, 32, 32, 16);
Texture texture = new Texture(pixmap);
triangle = new Sprite(texture);
triangle.setSize(3, 3);
triangle.setOriginCenter();
triangle.setPosition(0 - triangle.getWidth() / 2.0f, 0 - triangle.getHeight() / 2.0f);

然后我以这种方式每隔 deltaTime 旋转一次:

triangle.rotate(90 * deltaTime);

然后像这样渲染它:

batch.begin();
worldController.triangle.draw(batch);
batch.end();

我正在按照《学习 LibGDX 游戏开发,第二版》一书中的示例进行操作,因此我有一个 WorldController 和一个 WorldRenderer。我错过了什么?将 Sprite 原点设置为中心并绘制它还不够吗?这是我的行为:

enter image description here

虽然我希望它“原地”旋转。

最佳答案

看来你没上线

triangle.setOrigin(originX, originY);

(originX, originY) 是三角形的中心坐标。

编辑:您当前的代码不起作用的原因是因为当前的中心原点是 (0, 0)。

(我不确定为什么,但当我测试你的代码时它似乎是中心)。 您可以使用

将日志添加到您的代码中
Gdx.app.log("Tag", "LogInformation");

这是你应该做的

originX = (0+32)/2;
originY = (0+32)/2;

originX = (lowestXValue+highestXValue)/2;
originY = (lowestYValue+heightYValue)/2;

Here是 Sprite 上的 API,它可以帮助您更多地了解 rotate()

关于java - LibGDX 1.5 围绕其中心旋转 Sprite ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29610564/

相关文章:

java - 在具有未知标记名的 html 标记之间提取?

ios - 从特定一侧旋转 UIImageView - iOS

java - 我们如何向左旋转数组?

android - AAR中aapt/AndroidManifest.xml的作用

php - 如何在PHP中旋转图像?

java - Liquibase:未设置 MEDIUMTEXT 字符集

Java自定义枚举值枚举

java - 如何从 Eclipse RCP 应用程序中的代码更新 View

android - 如何设置 imageview 适合屏幕?

android - InApp Messaging 不会在自定义事件上显示消息