Android系统。 LibGDX。纹理变成黑色矩形

时间:2018-03-18 12:50:54

标签: android libgdx drawing

我的问题一步一步:

1)我在屏幕上有0张图像。

2)我创建第一个纹理并放入屏幕。有我的代码来创建纹理:

  fun getPlanetTexture(planetDiameter: Float): Texture {
    val planetImage = FileSystem.getPlanetBodyFor(planet)
    if (!planetImage.exists()) {
      val planetBitmap = getPlanetBitmap(planetDiameter)
      FileSystem.savePlanetBody(planet, planetBitmap)
    }
    val textureFileHandle = AbsoluteFileHandleResolver().resolve(planetImage.toString())
    return Texture(textureFileHandle)
  }

3)屏幕上出现纹理,但如果绘制就像黑色矩形一样。

4)我保存我的应用程序的状态,以便在prefs中保存我的模型,以便在打开应用程序时获得相同的文件和纹理。

5)我关注应用程序

6)我打开applciation

7)TA-DA!我的纹理正确绘制(它是美丽星球的纹理)

8)我在屏幕上添加了另一个纹理。

9)我的新纹理和旧纹理也是黑色矩形!

如何避免黑色矩形并始终正确绘制纹理?

这是我用来绘制纹理的代码

  override fun draw(sb: SpriteBatch, sr: ShapeRenderer) {
    val x = model.x * bounds.x
    val y = model.y * bounds.y
    sb.draw(body, x - body.width / 2, y - body.height / 2)
  }

1 个答案:

答案 0 :(得分:0)

经过一番搜索,我找到了解决方案:

将纹理读取放在这个结构中:

Gdx.app.postRunnable(new Runnable {
  val texture = Texture(...)
})