LibGDX-缩放导致精灵在移动时具有闪烁的线条

时间:2018-09-24 08:13:30

标签: android graphics libgdx game-engine

价值一千个字的GIF:https://i.imgur.com/tojuEMl.gifv

静止图像:

那条微小的灰色水平线不应该在那里。但是,在与摄影机/视口分辨率不同的分辨率上,当精灵移动时,该线会忽隐忽现。

LibGDX的新手,如果我在这里弄乱了术语,对不起!我目前正在以360x640的世界视口运行我的游戏。当我以该确切大小运行桌面版本时,它可以正常工作,没有闪烁的线条。

但是当我将分辨率更改为具有相同宽高比(例如450x800)或不同宽高比(例如480x800)的东西时,子画面会开始闪烁。随着精灵移动,精灵上方会出现一条水平线。我的猜测是,这是由于调整大小而导致的某个问题,从而导致Sprite不会在整数像素上绘制。

我的代码如下:

    float WIDTH = 360;
    float HEIGHT = 640;
    this.camera.position.set(WIDTH, HEIGHT / 2, 0);
    this.spriteBatch = new SpriteBatch();
    this.entities.add(new PlayerCharacter(WIDTH / 2, HEIGHT / 2));
    this.viewport = new FitViewport(WIDTH, HEIGHT, this.camera);
    this.viewport.apply(true);

是否有一种方法可以强制渲染不达到小数点像素值并且始终舍入(向下)?还是用另一种方法来消除缩放到略有不同的宽高比时的闪烁?

相关:我认为FitViewport应该始终保持宽高比。似乎是这样做的-当我更改为480x800时,侧面出现黑条。那么为什么它仍然存在闪烁的问题?

编辑:不确定,但是这可能仅在桌面版本上发生。我构建了一个APK,尽管我在具有相同分辨率(LG G4为16:9)的手机侧面出现黑条,这似乎也没有什么问题。

0 个答案:

没有答案