【问题标题】:LibGDX not showing images on AndroidLibGDX 未在 Android 上显示图像
【发布时间】:2014-04-17 07:07:06
【问题描述】:

我在 Android 上的图像渲染方面遇到了一些问题。我可以在我的桌面版本和 Android 模拟器中正确地看到游戏,但是当涉及到真正的 Android 设备时,什么都没有绘制。

对象存在是因为如果我单击按钮我看不到执行的操作,我可以听到声音并看到正确绘制的 BitmapFonts。

问题发生在使用 spritebatcher 或 Actors 绘制为纹理的图像(例如图像)。

有什么想法吗?提前致谢。

在资产类中:

public static void texturePacker(){
        if(S.DEBUG){
            Settings settings = new Settings();
            settings.maxWidth = 16384;
            settings.maxHeight = 16384;
            settings.jpegQuality = (float) 0.7;

            TexturePacker2.process(settings, "imgs/res", "imgs/packs","pack");
        }
    }

public static void loadGameAssets() {

        //Cargo todas las texturas del menu
        enemy_punch_static=atlas.findRegion("punch_static");
        enemy_punch_punyo1=atlas.findRegion("punch_punyo1");
...
}

在 Screen 实现类中:

...
    Image countdown_go=new Image(Assets.countdown_go);
stage.addActor(countdown_go);
...
@Override
    public void render(float delta) {
        super.render();

        Gdx.gl.glClear(Gdx.gl.GL_COLOR_BUFFER_BIT | Gdx.gl.GL_DEPTH_BUFFER_BIT);
        Gdx.gl.glClearColor(0.18431f,0.647058f,0.878431f, 1);
        stage.act(delta);
        stage.draw();
    }

【问题讨论】:

  • 您正在加载的文件的分辨率是多少?您遇到问题的设备是什么?另外,显示你的纹理加载代码。
  • 我在真正的 Nexus 5 和 Android 平板电脑上进行了测试。模拟器正在运行 Nexus 4。使用我的资产加载代码进行更新。

标签: image libgdx render


【解决方案1】:

您不能在设备上使用 16kx16k 纹理。您可以在所有想要支持的设备上查询 GL_MAX_TEXTURE 以查看是否可以使用 2048x2048 之类的内容,但您可能希望切换到 1024x1024 以确保安全。

【讨论】:

  • 这成功了。设置.maxWidth = 1024;设置.maxHeight = 1024;谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-08
  • 2019-10-20
  • 2014-07-31
  • 1970-01-01
相关资源
最近更新 更多