如何使用Libgdx绘制网格并处理每个方块的单击事件事件

时间:2015-09-23 16:39:29

标签: android opengl-es libgdx game-engine

我想在Android设备屏幕上制作一个5x5网格,并处理每个方块上的触摸事件

我该怎么做?

这是我为渲染网格而编写的代码,但我无法弄清楚如何处理网格中每个方块的触摸事件

    shape.begin(ShapeRenderer.ShapeType.Line);

    shape.setColor(Color.WHITE);

    float squareWidth = Gdx.graphics.getWidth()/5;
    float squareHeight = squareWidth;

    float padding = squareWidth/10;


    for(int j=0;j<5;j++){
        for(int i=0;i<5;i++){
            shape.box((padding+squareWidth*i),Gdx.graphics.getHeight()/8+(squareHeight*j)+padding,0,squareWidth-padding,squareHeight-padding,0);
        }

    }


    shape.end();

1 个答案:

答案 0 :(得分:1)

我这样做的方法是使用images的二维数组,并将数组添加到一个组中。此数组还为每个方块提供网格坐标。

然后,您可以使用命中检测来判断哪个方格被击中。

这种方法有许多好处,它们都是演员,如果需要,可以单独变得不可触摸。以同样的方式,只需更改setVisible,它们就会变得不可见。由于它们在一个组中,因此可以同时切换每个选项,这对切换屏幕非常有用,而不需要for循环。

希望这有帮助。