Android 什么';在libgdx中检查(并做些什么)触摸事件的最佳方法是什么?

Android 什么';在libgdx中检查(并做些什么)触摸事件的最佳方法是什么?,android,libgdx,Android,Libgdx,我有个新手问题。我刚开始学习libgdx,我有点困惑。我阅读了文档/维基,遵循了一些教程,比如gamefromscratch和其他教程,但我仍然有一个问题 为触摸/轻触活动检查和执行某些操作的最佳方式是什么 我使用场景和演员,我发现了至少4种与演员互动的方式(到目前为止),比如说: 1) myActor.addListener(new ClickListener(){...}); 2) myActor.setTouchable(Touchable.enabled); and putting t

我有个新手问题。我刚开始学习libgdx,我有点困惑。我阅读了文档/维基,遵循了一些教程,比如gamefromscratch和其他教程,但我仍然有一个问题

为触摸/轻触活动检查和执行某些操作的最佳方式是什么

我使用场景和演员,我发现了至少4种与演员互动的方式(到目前为止),比如说:

1) myActor.addListener(new ClickListener(){...});

2) myActor.setTouchable(Touchable.enabled); and putting the code in the act() method

3) verifying Gdx.input.isTouched() in the render() method

4) overriding touchDown, touchUp methods
如果您能提供一些详细信息和建议,帮助您更好地使用其中一种,或者了解它们之间的区别,我们将不胜感激


谢谢。

我一直在使用第一种方法,我认为从面向对象的角度来看,这是最好的方法

第二种方法行不通。无论您将
Actor
设置为可触摸还是不可触摸,
Actor.act(float)
仍将在执行
stage.act(float)
时被调用。这意味着您将在每一帧中执行代码

Gdx.input.isTouched()
只会告诉您触摸事件发生在屏幕上的任何位置。尝试找出哪个参与者被触摸击中不是一个好主意,因为他们自己已经能够确定(
actor.hit()

我不确定您要在哪里覆盖
接地
接地
。actor没有这些方法,所以我假设您所说的是标准的
InputProcessor
。在这种情况下,您将遇到与第三种方法相同的问题


因此,向您想要监控此类事件的参与者添加一个
ClickListener
,可能是最好的方法。

感谢@noone的回答。另一个后续问题,比方说,它与此相关,我不想就此提出新问题。什么事件侦听器是检查触摸/点击的“最佳”或推荐使用的(我只对移动设备感兴趣,不关心桌面):我可以将InputListener()与touchDown()方法结合使用,或者将ClickListener()与clicked()结合使用。我猜他们在移动应用上也做了同样的事情,但只是想知道使用它们是否有什么不同。感谢InTouch和click是一样的,唯一的区别是在mobile上,在触地之前没有移动的指针
ClickListener
实际上是一个
InputListener
,但它提供了更多的功能。使用
单击Listener