Java libgdx如何在图像中添加clicklistener

Java libgdx如何在图像中添加clicklistener,java,image,libgdx,listener,Java,Image,Libgdx,Listener,我刚开始用libGDX做原型,以了解它是如何工作的。 我想实现一个网格(像国际象棋游戏),当我点击/触摸网格框时,它的图像就会改变 我找到了一个很好的教程,但它只使用键盘侦听器,在web上,我找不到一个好的例子来阐明这些机制 我根本不明白的是:渲染框的用途是什么(目前我只使用了SpriteBatch和ShaperEnder),以及如何检测何时单击了哪个框(我认为计算坐标不是一个好方法。我认为最好的方法是在每个框中添加一个单击侦听器,以确定何时单击,但我不知道如何编写代码) 谢谢你的建议,如果你有

我刚开始用libGDX做原型,以了解它是如何工作的。 我想实现一个网格(像国际象棋游戏),当我点击/触摸网格框时,它的图像就会改变

我找到了一个很好的教程,但它只使用键盘侦听器,在web上,我找不到一个好的例子来阐明这些机制

我根本不明白的是:渲染框的用途是什么(目前我只使用了SpriteBatch和ShaperEnder),以及如何检测何时单击了哪个框(我认为计算坐标不是一个好方法。我认为最好的方法是在每个框中添加一个单击侦听器,以确定何时单击,但我不知道如何编写代码)


谢谢你的建议,如果你有一个例子,它可以帮助我很多。

Scene2d是最适合你的,请查看文档。

例如,您可以将
ActorGestureListener
添加到已创建的actor中。 要使用
shaperender
渲染某些内容,可以覆盖actor的
draw
方法 并将矩阵应用于它们。但如果您只需要绘制方框,则最好使用带有矩形的简单图像,而不是使用
shaperender
。选择您更喜欢的变体

Image image = new Image();

image.addListener(new ClickListener(){
    @Override
    public void clicked(InputEvent event, float x, float y) {
        System.out.println("You clicked an image...");
    }
});
现在,我们可以将此图像添加到类似于
表的内容中
,或者直接添加到
阶段

如dtx12所述,您应该进行研究。您可能希望使用这样的表来设置网格

Table chessTable = new Table();
int boardHeight = 8;
int boardWidth = 8;

for (int y = 0; y < boardHeight; y++)
{
    for (int x = 0; x < boardWidth; x++)
    {
        //Check if dividable by two to make checker pattern and add cell to table.
        if (x + y % 2 == 0)
            chessTable.add(blackImage);
        else 
            chessTable.add(whiteImage);
    }
    //Add a new row to table
    chessTable.row();
}
Table chessTable=新表();
内板高度=8;
int boardWidth=8;
对于(int y=0;y
虽然问题的级别很低,但我们不应该只链接到文档。除了源代码的链接之外,至少要复制问题中的一些文档。非常感谢,您的示例与本scene2d教程相结合:已经解释了clickListener的工作原理。老实说,我仍然不了解如何呈现选项卡le的内容,但在我的游戏示例中不需要。@newUser.java舞台为您处理绘图。您将表格添加到舞台,并在更新方法中简单调用stage.draw()但是,为了正确理解,你确实应该阅读更多关于<代码> ScEnn2D2/代码>,也许做一个关于这个问题的教程,有很多内容。如果我的答案是你正在寻找的,考虑接受它,并在这个过程中获得2个代表。