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