如何检测 libGDX java 中精灵或纹理的触摸?
How to detect touch on sprite or texture in libGDX java?
我有一个主页按钮图标,它只是一个带有图像的普通精灵。
我想在触摸此按钮时执行一些操作。我如何将触摸侦听器添加到此按钮或是否有任何其他更简单的方法来执行此操作?
实现此目的的一种方法是使用按钮的按钮边界设置 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
。
我有一个主页按钮图标,它只是一个带有图像的普通精灵。 我想在触摸此按钮时执行一些操作。我如何将触摸侦听器添加到此按钮或是否有任何其他更简单的方法来执行此操作?
实现此目的的一种方法是使用按钮的按钮边界设置 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
。