Libgdx - 屏幕上未显示的纹理发生变化

时间:2015-03-30 14:14:43

标签: java android libgdx

在我的Libgdx Android游戏屏幕游戏中,我有以下代码,可以通过屏幕触摸开始新游戏。

   if(Gdx.input.isTouched()) {
    ScreenManager.setScreen(new GameScreen());
}

新游戏开始,但屏幕上没有显示任何精灵。

我已经确认通过记录和使用调试器开始了新游戏。由于玩家死亡,屏幕上的游戏最终会在一段时间后重新出现。

有趣的是,如果我点击主页按钮或在Android中显示正在运行的应用程序菜单并重新进入应用程序,则精灵显示正常。

我的GameOver屏幕和游戏屏幕都是实现Screen界面的类。我觉得这与我的纹理有关。

任何人都知道什么可能导致精灵不显示?

2 个答案:

答案 0 :(得分:1)

你需要确保加载纹理:我也遇到了类似的问题,而我的错误是意外地处理了纹理,只有在重新启动游戏时才会加载纹理。

所以去检查,你在哪里加载你的纹理,你把它们放在任何地方,什么时候调用这些方法。

答案 1 :(得分:0)

您需要确保在创建OpenGL上下文的线程中加载Textures。现在,Textures被加载到一个静态块中,这会在应用程序启动时立即加载纹理。

尝试将TextureManager.java更改为:

public class TextureManager {
    public static Texture PLAYER;
    .
    .
    .

    public static void load(){
        PLAYER = new Texture(...)
        .
        .
        .
    }
}

然后在TextureManager.load()方法中调用MainGame.create()(首次调用,屏幕初始化之前)

然后在OpenGL上下文中加载资源。