Android。 LibGDX。纹理变成黑色矩形
Android. LibGDX. Textures becomes black rectangles
我的问题步骤:
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) 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)
}
经过一番搜索,我找到了解决方案:
只需将 texture-reading 放置到此结构中:
Gdx.app.postRunnable(new Runnable {
val texture = Texture(...)
})
我的问题步骤:
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) 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)
}
经过一番搜索,我找到了解决方案:
只需将 texture-reading 放置到此结构中:
Gdx.app.postRunnable(new Runnable {
val texture = Texture(...)
})