battleStage.addActor(aPlayer.handCard1);
aPlayer.handCard1.setPosition(300, -256);
aPlayer.handCard1.addAction(Actions.sequence(Actions.delay(0),
Actions.moveTo(300, 50, 1)));
aPlayer.handCard1.getChildren().items[1].addListener(new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
aPlayer.handCard1.getChildren().items[1].addAction(Actions.hide());
System.out.println("duh");
}
});
这包含在我的render方法中调用的方法中。 它没有得到Clicked。我的控制台没有任何东西出现。我调试了应用程序,“items [1]”实际上是作为一个孩子。这是一个图像,当我运行应用程序时,图像会显示出来。
有人可以帮忙吗?提前谢谢!
修改
handCard1是一个包含2个Image子组的组。
修改
我在battleStage.addActor(aPlayer.handCard1);
中正在show()
和
aPlayer.handCard1.setPosition(300, 50);
aPlayer.handCard1.addListener(new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
aPlayer.handCard1.getChildren().items[1].addAction(Actions.hide());
System.out.println("duh");
}
});
在render()
,它正在运作。
然后我正在做
aPlayer.handCard1.setPosition(300, 50);
aPlayer.handCard1.getChildren().items[1].setHeight(256);
aPlayer.handCard1.getChildren().items[1].setWidth(192);
aPlayer.handCard1.getChildren().items[1].addListener(new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
aPlayer.handCard1.getChildren().items[1].addAction(Actions.hide());
System.out.println("duh");
}
});
}
<{1>}中的并且它无效。
答案 0 :(得分:0)
您需要使用actor的setBounds()方法设置click事件的边界才能工作。请检查 this link
答案 1 :(得分:0)
你确定你在做什么
Gdx.input.setInputProcessor(battleStage);
和
battleStage.act(delta);
答案 2 :(得分:0)
&#34;这包含在我的渲染方法中调用的方法中。&#34;
您应该在show()方法中将actor添加到舞台而不是render()方法。