我正在用 libgdx 制作游戏。
每个级别都有一个类(class)。我为每个级别添加了一个阶段。 Actor 也被添加到这个阶段。我曾经用来检测舞台上的事件。
Gdx.input.setInputProcessor(stage);
关卡对象在另一个名为 GameScreen 的类中实例化。 GameScreen 扩展了 Game 类。
我无法检测到舞台上 Actor 的触摸事件。我在每个 Actor 上添加了以下代码来检测触摸。
this.addListener(new InputListener(){
public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) {
System.out.println("touchdown at " + x + " " + y);
return true;
}
});
有什么我想念的吗?我的级别类(class)是否应该扩展另一个类(class)?
最佳答案
您在创建新 Actor 时是否设置界限?重要的是,每个 actor 都应该设置边界,否则它不会记录任何触摸。 因此,actor 构造函数应该类似于:
public someActor(){
setBounds(someActorXPosition, someActorYPosition, someActorWidth, someActorHeight);
this.addListener(new InputListener(){
...rest of your code...
然后,无论何时移动 actor,都不要忘记设置新的界限。 为我工作
关于java - 无法检测舞台 LIBGDX 中 Actor 的着陆事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28133959/