首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LibGDX Box2DLights在呈现时抛出错误

LibGDX Box2DLights在呈现时抛出错误
EN

Stack Overflow用户
提问于 2015-07-02 17:16:36
回答 2查看 507关注 0票数 1

我试图让Box2D PointLight在屏幕上呈现,但在呈现时,它会引发异常。我已经修改了API和Box2D用户手册,并观看了关于这个主题的视频,但是还没有找到解决我的问题的方法。这是我的代码和错误。

代码语言:javascript
复制
package com.mygdx.test;

import box2dLight.PointLight;
import box2dLight.RayHandler;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.physics.box2d.World;

public class Test extends ApplicationAdapter {
    /** the camera **/
    OrthographicCamera camera;
    RayHandler rayHandler;
    World world;

    @Override
    public void create() {
        camera = new OrthographicCamera(48, 32);
        camera.update();
        world = new World(new Vector2(0, -10), true);
        rayHandler = new RayHandler(world);
        new PointLight(rayHandler, 32);
    }

    @Override
    public void render() {
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
        world.step(Gdx.graphics.getDeltaTime(), 8, 3);
        rayHandler.setCombinedMatrix(camera.combined);
        rayHandler.updateAndRender();
    }

而错误是:

代码语言:javascript
复制
Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: java.lang.NoSuchMethodError: com.badlogic.gdx.graphics.glutils.FrameBuffer.getColorBufferTexture()Lcom/badlogic/gdx/graphics/Texture;
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:127)
Caused by: java.lang.NoSuchMethodError: com.badlogic.gdx.graphics.glutils.FrameBuffer.getColorBufferTexture()Lcom/badlogic/gdx/graphics/Texture;
at box2dLight.LightMap.gaussianBlur(LightMap.java:76)
at box2dLight.LightMap.render(LightMap.java:37)
at box2dLight.RayHandler.render(RayHandler.java:328)
at box2dLight.RayHandler.updateAndRender(RayHandler.java:262)
at com.mygdx.test.Test.render(Test.java:33)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:215)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:120)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-09 19:37:57

对于一个新生成的libgdx项目,我也遇到了同样的问题,但是将box2dlights版本从1.3更新到1.4解决了这个错误。

票数 2
EN

Stack Overflow用户

发布于 2015-07-02 17:25:49

你试过用这种方法吗?

代码语言:javascript
复制
new PointLight(rayHandler, RAYS_NUM, new Color(1,1,1,1), lightDistance, x, y);

我也注意到了,你应该做

代码语言:javascript
复制
world.step();

在呈现()方法的末尾。也许解决不了这个问题,但我注意到

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31190803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档