gpt4 book ai didi

java - LibGDX:在渲染方法中创建和处置ShapeRenderer?

转载 作者:行者123 更新时间:2023-12-01 22:20:41 25 4
gpt4 key购买 nike

我正在使用 ShapeRenderer 对象在我的游戏(Screen 类)中创建颜色渐变。分配的内存曾经永久增长,直到我开始在每次调用后处理我的 ShapeRenderer 对象。如何重复使用我的颜色渐变?有没有办法将渐变绘制到纹理中(仅在渲染方法中重用一次)?

public void render(float deltaTime) {
camera.update();
batch.setProjectionMatrix(camera.combined);

ShapeRenderer shapeRenderer = new ShapeRenderer();
shapeRenderer.setProjectionMatrix(camera.combined);
shapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
shapeRenderer.rect(0, 0, screenWidth, screenHeight, topColor, topColor, bottomColor, bottomColor);
shapeRenderer.end();
shapeRenderer.dispose();

batch.begin();
...
batch.end();
}

最佳答案

虽然您似乎已经解决了问题,但这里只是给您和任何遇到类似问题的人提供一点说明。

不要在每次循环运行期间不惜一切代价实例化新对象(任何类型)。您遇到速度缓慢的原因正是因为这个。每次实例化一个新对象然后停止使用它时,JVM 的垃圾收集器都需要删除该对象。您应该始终尝试重用对象。这就是为什么poolsmemory management一般来说(这些链接专门针对 LibGdx)非常重要。

您为 ShapeRenderer 创建一个字段的想法很好,只是不要忘记在游戏的 dispose() 方法中dispose()它。

关于java - LibGDX:在渲染方法中创建和处置ShapeRenderer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29876154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com