android - Libgdx 旋转纹理区域

标签 android libgdx

我想知道如何在 Libgdx 中旋转纹理区域。

如果Pixmap有问题,也可以给我。

我不想使用 Sprite ,因为它不适合我想做的事情。

谢谢你。

最佳答案

将纹理区域旋转 90° 的倍数实际上非常简单。

textureRegion 是较大纹理的一部分,由两对 UV 坐标定义。 为了旋转你的textureRegion,你只需要旋转这些UV坐标。

例如,这是您的原始纹理区域:Original region

(我们假设您的区域是正方形,但它也适用于矩形) 要顺时针旋转 90 度,只需交换坐标即可:

u1 = u1
v1 = v2
u2 = u2
v2 = v1

这将导致:

Rotated region

你可以用变换矩阵(旋转、平移、缩放)来推广这个解决方案,但对于 90° 多次旋转,你只需要交换坐标即可。

编辑:This page包含更改纹理区域 UV 坐标所需的所有信息

关于android - Libgdx 旋转纹理区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17023134/

相关文章:

android - 在 listView Android 中预选项目

android - 致命异常 : java. lang.ClassCastException : android. support.v7.widget.TintContextWrapper 无法转换为 android.app.Activity

android - 为什么我在 Android 中收到 token null is not valid 错误?

java - libgdx java 位置变化不大后如何阻止球弹跳

android - 如何将广告置于屏幕底部中央(libgdx + AdMob)

android - 错误 : OAuth2Credentials instance does not support refreshing the access token. 如何使用 token 值字符串创建 AccessToken 实例?

Android:振动器法(如果手机没有振动器?)

java - 为什么我的随机数组没有在每次渲染上绘制随机纹理?我必须改变什么?

java - libgdx 中的线程化和移动 Sprite 的一般问题

java - 为什么我只得到部分图像? (libGDX,sprite,spriteBatch)