如何在libGDX Java中检测对精灵或纹理的触摸?

时间:2019-03-08 14:56:55

标签: java android libgdx sprite

我有一个主页按钮图标,它只是一个带有图像的普通精灵。 我想通过触摸此按钮执行一些操作。如何将触摸侦听器添加到此按钮,或者还有其他更简单的方法吗?

1 个答案:

答案 0 :(得分:0)

一种方法是使用按钮的按钮边界设置Rectangle

Rectangle buttonBounds = new Rectangle(buttonX, buttonY, buttonWidth, buttonHeight);

如果您随后要检查用户是否触摸了按钮,请在您的render()方法中输入:

if(Gdx.input.justTouched()){
    Vector2 touch = viewport.unproject(new Vector2(Gdx.input.getX(), Gdx.input.getY()));

    //Check if button if touched
    if(buttonBounds.contains(touch)){
        System.out.println("Button touched!");
        //Do something
    }
}

如果您不使用Viewport,则可以将viewport.unproject()更改为cam.unproject(),其中cam是您的Camera