gpt4 book ai didi

java - Libgdx SpriteBatch 绘制 Actor,但不绘制其他纹理

转载 作者:行者123 更新时间:2023-12-01 09:43:25 26 4
gpt4 key购买 nike

自从我使用 LibGdx 以来已经有一段时间了,所以我觉得我只是错过了一些明显的东西。

MyGdxGame 中的渲染方法如下所示,调用舞台绘制自身(及其 Actor ),然后我尝试绘制一组纹理以用于调试目的。

@Override
public void render()
{
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
StageManager.getCurrentStage().act();

spriteBatch.begin();
StageManager.getCurrentStage().draw();
for(int i = 0; i < 100; i++)
{
spriteBatch.draw(TextureManager.getPlayerTexture(), 50*i, 50*i);
}
}

舞台与其一个 Actor 一起绘制,但其他纹理未绘制。

我尝试过的:在舞台相机上设置批量投影矩阵(调用更新之后),确保纹理坐标应该可见。

Actor 从同一个 TextureManager.getPlayerTexture 获取纹理,所以我认为这不是纹理问题。

我还应该检查什么才能绘制纹理?

最佳答案

通常,您的代码会导致 RuntimeException,因为您在绘制舞台之前调用了批处理的开始。但由于您实际上有两个 Sprite 批处理(其中一个在舞台内部,因为您没有与其共享原始批处理),因此不会发生实际错误。

绘制纹理后,您缺少对 spriteBatch.end() 的调用。并且对 spriteBatch.begin() 的调用需要移到 stage.draw() 之后。

并且您应该将该 sprite 批处理传递到 Stage 构造函数中,因为拥有多个 sprite 批处理是一种浪费。每个 Sprite 批处理使用相当数量的内存并编译着色器。

关于java - Libgdx SpriteBatch 绘制 Actor,但不绘制其他纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38270806/

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