#java #android #libgdx #actor
#java #Android #libgdx #актер
Вопрос:
у меня на экране снова и снова появляются случайные поля, когда поле касается, оно меняет положение. Я не уверен, как проверить, затронут ли экран, а не поле. где угодно, кроме окна.
private Stage stage;
private Texture boxImage;
private Image pop;
@Override
public void show() {
stage = new Stage();
Gdx.input.setInputProcessor(stage);
boxImage = new Texture(Gdx.files.internal("box.png"));
pop = new Image(boxImage);
pop.setPosition(20,20);
pop.addListener(new ClickListener(){
@Override
public void clicked(InputEvent event, float x, float y)
{
int num1 = (int)MathUtils.random(50,500);
int num2 = (int)MathUtils.random(50,500);
pop.setPosition(num1,num2);
}
});
stage.addActor(pop);
}
@Override
public void render(float delta) {
Gdx.gl.glClearColor(0, 0 , 1, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
stage.act(delta);
stage.draw();
}
Ответ №1:
Как насчет простого добавления ClickListener на вашу сцену?
stage.addListener(new ClickListener(){
@Override
public void clicked(InputEvent event, float x, float y) {
//check if box is hit
if (pop.equals(stage.hit(x, y, false))) {
//box hit
} else {
//box was not hit
}
}
});
Комментарии:
1. пробовал это, но он также регистрирует попадание в поле, потому что оно находится на сцене. мне нужно все, кроме текущего поля
2. У меня это не сработало, всякий раз, когда я нажимаю на свой ImageButton, он по-прежнему регистрирует два щелчка от актера и фона. Может быть, это потому, что я использую ImageButton вместо Image?