Java Android LibGDX设置投影矩阵组合会导致精灵垂直翻转
我已将camera.setToOrth设置为我的宽度和高度。每当我运行该渲染方法时,我的气球精灵基本上是垂直旋转的,看起来像是翻转了180度,像是图像保存为一个站立的气球,绘制时看起来像是旋转了,所以我必须旋转屏幕才能看到它 我之所以使用setProjectionMatrix,是因为我假设android肖像模式下屏幕(0,0)的默认位置是右上角,而在libGDX上,屏幕自动位于左下角,所以基本上设置为修复libGDX,但手机的默认位置不变,我希望它能改变&和libGDX的一样,因为我需要处理屏幕触摸,并获得正确的位置 所以基本上setProjectionMatrix&setToOrtho(true…)完成了它的工作,但唯一的问题是它只是将图像旋转180度Java Android LibGDX设置投影矩阵组合会导致精灵垂直翻转,java,android,libgdx,Java,Android,Libgdx,我已将camera.setToOrth设置为我的宽度和高度。每当我运行该渲染方法时,我的气球精灵基本上是垂直旋转的,看起来像是翻转了180度,像是图像保存为一个站立的气球,绘制时看起来像是旋转了,所以我必须旋转屏幕才能看到它 我之所以使用setProjectionMatrix,是因为我假设android肖像模式下屏幕(0,0)的默认位置是右上角,而在libGDX上,屏幕自动位于左下角,所以基本上设置为修复libGDX,但手机的默认位置不变,我希望它能改变&和libGDX的一样,因为我需要处理屏幕
有人知道它为什么这样做吗?在Android的视图系统中,(0,0)位于左上角,Y指向下方。在libgdx中,如果在
setToOrtho
中使用false
,则Y向上,并且(0,0)位于左下角。如果您根本不更改精灵批处理的投影矩阵,(0,0)是屏幕的中心,您将有一个变形的纵横比。您的单个精灵是横向绘制的,但在屏幕上的正确位置,还是整个场景是横向绘制的?无论您在设置中选择的方向是什么,都不重要。您可以使用camera.unproject()
将屏幕坐标转换为场景坐标中的一个点,而不管摄影机是如何设置的。如果使用setToOrTo(true,…)
,我想您在加载精灵时也要使用flipY
。
public void render() {
this.spriteRenderer.setProjectionMatrix(this.instance.camera.combined);
this.spriteRenderer.begin();
if (!this.ballon.isPoping()) {
Sprite s = this.ballon.getSprite();
spriteRenderer.draw(s, 50, 50, s.getWidth(), s.getHeight());
}
// else {
// if (!this.ballon.isPoped()) {
// Sprite s = this.ballon.getCurrentAnimation();
// this.spriteRenderer.draw(s, this.ballon.getX(),
// this.ballon.getY(),
// this.ballon.getSprite().getWidth() * SpriteConfiguration.BALLON_SCALE,
// this.ballon.getSprite().getHeight() * SpriteConfiguration.BALLON_SCALE);
// this.ballon.processAnimation();
// }
// }
this.spriteRenderer.end();
}