Java render()在Box2LightsVersion中导致黑屏

Java render()在Box2LightsVersion中导致黑屏,java,libgdx,Java,Libgdx,如果我将raydhandler.render()注释掉,我会看到这个屏幕 但是,当我取消注释它时,屏幕变黑。有什么想法吗 public class GameScreen implements Screen { private ColorCatch game; private OrthographicCamera camera; private World world; private RayHandler rayHandler; private Bo

如果我将
raydhandler.render()
注释掉,我会看到这个屏幕

但是,当我取消注释它时,屏幕变黑。有什么想法吗

public class GameScreen implements Screen {

    private ColorCatch game;
    private OrthographicCamera camera;

    private World world;
    private RayHandler rayHandler;
    private Body body;

    private ShapeRenderer shapeRenderer = new ShapeRenderer();

    public GameScreen (final ColorCatch gam) {

        this.game = gam;

        camera = new OrthographicCamera();
        camera.setToOrtho(false, 800, 480);

        world = new World(new Vector2(0.0f, -98.0f), true);
        rayHandler = new RayHandler(world);
        new PointLight(rayHandler, 1000, new Color(1,1,1,1), 5.0f, Gdx.graphics.getWidth() / 2, Gdx.graphics.getHeight() / 2);

        CircleShape shape = new CircleShape();
        shape.setRadius(3.0f);
        FixtureDef fd = new FixtureDef();
        fd.shape = shape;
        BodyDef bd = new BodyDef();
        bd.position.set(new Vector2(Gdx.graphics.getWidth() / 2, Gdx.graphics.getHeight() / 2));
        bd.type = BodyType.DynamicBody;

        body = world.createBody(bd);
    }

    @Override
    public void render(float delta) {
        Gdx.gl.glClearColor(0, 0, 0, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

        camera.update();
        shapeRenderer.setProjectionMatrix(camera.combined);

        world.step(Gdx.graphics.getDeltaTime(), 8, 1);

        Vector2 pos = body.getPosition();

        shapeRenderer.begin(ShapeType.Filled);
        shapeRenderer.setColor(Color.RED);
        shapeRenderer.identity();
        shapeRenderer.translate(pos.x, pos.y, 0);
        shapeRenderer.circle(0.0f, 0.0f, 66.0f);
        shapeRenderer.end();

        shapeRenderer.begin(ShapeType.Filled);
        shapeRenderer.setColor(0, 1, 0, 1);
        shapeRenderer.identity();
        shapeRenderer.rect(5, 5, 10, 10);
        shapeRenderer.circle(25, 25, 10);
        shapeRenderer.end();

        rayHandler.setCombinedMatrix(camera);
        rayHandler.update();
        //rayHandler.render(); //FIXME this line causes blank screen
    }

    @Override
    public void dispose() {
        game.getBatch().dispose();
        bg.dispose();
    }

    @Override
    public void show() {
                // TODO Auto-generated method stub
    }

    @Override
    public void resize(int width, int height) {
        // TODO Auto-generated method stub
    }

    @Override
    public void pause() {
        // TODO Auto-generated method stub
    }

    @Override
    public void resume() {
        // TODO Auto-generated method stub
    }

    @Override
    public void hide() {
        // TODO Auto-generated method stub
    }
}

原来我的
点光源的半径太小,所以不可见

这就是有效的方法

new PointLight(rayHandler, 1000, new Color(1, 1, 1, 1), 50.0f, Gdx.graphics.getWidth() / 2, Gdx.graphics.getHeight() / 2);

你是说你得到了一个黑屏,但在你的评论中它说空白?好!,我看到的另一个可能的问题(和主题外)是您的相机尺寸太大,请记住box2d是以米为单位管理的,而不是以像素为单位。这通常会在您尝试移动对象时反映出来,因为它们移动得太慢。但是,如果你意识到这种行为,那就忽略这个评论哈哈。