【问题标题】:Libgdx sprite not drawing in browserLibgdx sprite 不在浏览器中绘制
【发布时间】:2017-11-24 23:15:03
【问题描述】:

这是我第一次尝试将 libgdx 游戏部署到 html,但遇到了一些困难。

在桌面上一切正常,但在浏览器中我的两个精灵没有出现,其余的都很好。

这两个精灵应该是背景和滚动角色移动的原因。

我在 GameScree 类的 show 方法中加载我的纹理,如下所示:

backgroundTexture = new Texture(Gdx.files.internal("background.png"));

//setting wraping to repeat to achive scrolling background by one texture
backgroundTexture.setWrap(Texture.TextureWrap.Repeat, Texture.TextureWrap.Repeat);

//and I render it like this (I create a Sprite of it)
batch.draw(backgroundSprite.getTexture(),0,0, (int) position ,0, 1280, 720);

通过增加位置,背景正在滚动,这在桌面上可以正常工作。

我在 chrome 控制台中遇到错误:

[.Offscreen-For-WebGL-00000000071AC350]渲染警告:绑定到纹理单元 0 的纹理不可渲染。它可能不是 2 的幂并且具有不兼容的纹理过滤。

我不完全理解为什么,它是如何不兼容的?而且,我的纹理都不是 POT,但它们仍在工作。

【问题讨论】:

    标签: java gwt libgdx


    【解决方案1】:

    当纹理不是 2 的幂时,你应该避免使用 mipmap。

    backgroundTexture.setFilter(Texture.TextureFilter.Linear, Texture.TextureFilter.Linear);
    

    最好用2次方的纹理(像素宽高都是2n的值)

    【讨论】:

    • 谢谢,是的,我知道一般来说非罐式纹理更好,但我的纹理都不是 2 的幂,而且它们仍在工作。另外,如果我是对的,您可以通过将 true 作为第二个参数传递给 Textures 构造函数来启用纹理的 mipmaping,但我没有这样做。我已经在这个特定的纹理上添加了线性过滤,但它没有显示出来。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-08
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 1970-01-01
    • 2016-04-14
    相关资源
    最近更新 更多