gpt4 book ai didi

java - LibGDX Sprite 渲染问题

转载 作者:行者123 更新时间:2023-11-30 03:09:31 26 4
gpt4 key购买 nike

我正在使用 LibGDX,但在渲染 Sprites 时遇到了问题,我已经为此工作了 6 个小时,现在我几乎想要扯掉自己的头发。

如果我只绘制 Sprite , Sprite 就会像这样绘制(绿色小东西:https://gyazo.com/6a70bb710fdd6bb9d372cef050cb6c4e

如果我在那之后绘制任何东西,比如说我的 rayHandler, Sprite 不会绘制:https://gyazo.com/432d7cbd19f55b6be7252537b14cd35b

这是我的渲染方法:

    @Override
public void render(float delta) {

/**
* Clear screen.
*/
Gdx.gl.glClearColor(0, 0, 0, 0);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

continuousInput(delta);
update(delta);

/**
* Start 'spriteBatch'.
*/
spriteBatch.begin();
spriteBatch.setProjectionMatrix(cameraHandler.orthographicCamera.combined);
spriteBatch.disableBlending();

/**
* Render our handlers
*/
spriteBatch.draw(texture, 100, 1);
//mapHandler.render(delta);
// lightHandler.render(delta);
// playerHandler.render(delta, spriteBatch);
spriteBatch.draw(texture, 100, 1);
spriteBatch.draw(texture, 1, 1);

/**
* End 'spriteBatch'.
*/
spriteBatch.end();
}

我的项目相当大,所以我不会包含任何特定的类,但如果你们知道这是一个常见问题,那么解决方案将非常有帮助。这是我整个项目的代码,最后它变得困惑,因为我非常焦躁。

注意: map 和所有内容都渲染得很好,我认为这是 spriteBatch 的问题,但我无法弄清楚。

来源:http://www.filedropper.com/resident

再次感谢您!任何回应表示赞赏。- jack

最佳答案

最明显的问题是您在 spriteBatch.begin()end() 之间绘制非 SpriteBatch 内容。当您调用 spriteBatch.begin() 时,它会设置其着色器及其参数、混合参数等,并且在 end() 之前不会期望它们被其他对象更改 被调用。

我假设您的 lightHandler.render() 正在调用 box2dlights 中的某些内容来将灯光渲染到场景,因此该对象将修改当前 Activity 的着色器以及混合参数和 Sprite 批处理不会知道发生了什么并且无法使用react。

因此,在绘制任何未使用 Sprite 批处理绘制的内容之前,请调用 spriteBatch.end()。如果您需要在非 SpriteBatch 内容之上绘制 Sprite ,您可以再次调用 begin()

关于java - LibGDX Sprite 渲染问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33907567/

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