java - LibGDX Sprite 渲染问题

标签 java libgdx sprite render

我正在使用 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/

相关文章:

java - 类型安全的通用 Java 观察器编译时错误

java - libgdx box2d,以一定角度创建时纹理/主体不在正确位置

java - 如何设置Actor子类的位置忽略draw方法中的位置

css - 试图让 Sprite 工作 - css

java - 结果集到字符串java?

java - 在 JEditorPane 中启用链接的键盘导航

java - 我是否需要编写一个自定义 HttpMessageConverter 来将 List<Long> 作为参数与 RestTemplate 一起传递

ios - 将 sqlite 数据库用于 iOS (robovm) 与 libgdx

c++ - COCOS 2dx无法获取touches?

CSS 可以用 Sprite 图像的 1px 区域填充元素的背景吗?