你如何在LibGDX中移动形状?

时间:2016-08-02 11:41:12

标签: java libgdx

我目前正在尝试使用LibGDX中的箭头键移动形状。这就是我到目前为止所做的:

    shapeRenderer.setColor(Color.BLACK);
    shapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
    shapeRenderer.rect(250,250,20,20);
    if(Gdx.input.isKeyPressed(Input.Keys.LEFT)) {
        shapeRenderer.rect(200,250,20,20);

    }
    shapeRenderer.end()

然而它似乎只创造了一个新的形状,而不是移动我的旧形状。有没有办法用形状移动旧的,或者我应该使用另一个类?

2 个答案:

答案 0 :(得分:3)

ShapeRenderer仅渲染点,线,"形状"你告诉它画画。它实际上并不存储/创建形状。你的代码每次渲染一个矩形,如果按下左键,只需在稍微不同的坐标上绘制第二个矩形。

如果您只想使用形状,请查看libGDX Rectangle类本身(还有Circle,Ellipse,Polygon类)。您可以创建一个矩形(指定x / y坐标,宽度/高度等),然后使用形状渲染器根据矩形的x / y坐标(或宽度/高度/等)绘制该矩形。

这是一个简单的解决方案,但可能只是你需要的

答案 1 :(得分:0)

您需要清除两个渲染调用之间的屏幕。这可以通过以下命令完成:

Gdx.gl.glClearColor( 1, 0, 0, 1 );
Gdx.gl.glClear( GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT );

(来自libgdx wiki)。

在实际游戏中,通常在绘制任何内容之前在渲染方法中完成。

重要的是要注意'形状'您创建的内容根本无法修改,大多数程序会将对象(如Rectangle)形状化以跟踪属性,然后在render方法中使用此数据。我建议您通过一个简单的游戏“#39;关于libgdx wiki的教程,它展示了如何使用libGDX完成许多与游戏相关的常见任务。 Link to tutorial.

相关问题