【发布时间】:2018-08-25 19:48:19
【问题描述】:
我想知道有没有办法使用组合在一起的点击侦听器设置多个图像。我有这个图像数组,我尝试为每个循环使用增强的,但它没有用。我试图在数组中的所有图像上设置一个点击侦听器,而不用一个点击侦听器单独设置数组的每个成员。
编辑
public void Player1() {
deck.displayHand();
stage = new Stage(new ScreenViewport());
group.addActor(deck.hand.get(0));
deck.hand.get(0).setPosition(200,0);
deck.hand.get(0).setTouchable(Touchable.enabled);
group.addActor(deck.hand.get(1));
deck.hand.get(1).setPosition(220,0);
deck.hand.get(1).setTouchable(Touchable.enabled);
group.addActor(deck.hand.get(2));
deck.hand.get(2).setPosition(240,0);
deck.hand.get(2).setTouchable(Touchable.enabled);
stage.addActor(group);
rand = (int) (Math.random() * (deck.hand.size));
for (int z = 0; z<deck.hand.size; z++){
final int finalZ = z;
deck.hand.get(z).addListener(new ClickListener(){
@Override
public void clicked(InputEvent event, float x, float y) {
deck.hand.get(finalZ).addAction(Actions.moveTo(300,400));
}
});
}
}
@Override
public void draw(Batch batch, float parentAlpha) {
Gdx.input.setInputProcessor(stage);
stage.act();
stage.draw();
}}
我必须为每个循环使用增强型,还是可以使用不同的循环?目的是让用户点击/触摸其中一张图片,然后它会转到屏幕的一个位置,每点击/触摸一张图片,它就会转到屏幕上的一个位置。
【问题讨论】:
-
为什么不起作用?您遇到异常或单击不起作用在这种情况下,您可能需要在更新方法中调用
stage.act()并将阶段设置为输入处理器Gdx.input.setInputProcessor(stage)。 -
我调用了 stage.act 并将我的舞台设置为我的输入处理器,但我仍然无法点击图像
-
好吧,在您的代码中,您将图像设置在舞台上并给了它们
ClickListener,所以据我所知还有其他事情发生,但我需要查看更多代码。跨度>
标签: java arrays libgdx clicklistener