人造人.LibGDX.纹理变为黑色矩形



我的问题一步一步

: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)我保存了应用程序的状态以将我的模型保存在首选项中,以便在打开应用程序时获得相同的文件和纹理。

5) 我申请

6) 打开应用程序

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

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)
}

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

只需将纹理读取放在此结构中:

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

最新更新