У меня есть игра, в которой отображается лучник, и я пытаюсь настроить ее так, чтобы при нажатии моей кнопки пользователю разрешалось щелкнуть в любом месте экрана, а затем новый лучник был бы настроен на где происходит щелчок. В настоящее время мой код позволяет мне щелкнуть по экрану и установить нового лучника независимо от того, нажата ли кнопка или нет. Может кто-нибудь объяснить, что не так, потому что я, хотя MouseEvent будет происходить на сцене после нажатия кнопки.Обработка вложенных событий
myButton.setOnMouseClicked(
new EventHandler<MouseEvent>()
{
public void handle(MouseEvent e)
{
gc.setFill(color);
gc.fillRect(0,0,width,height);
scene.setOnMouseClicked(new EventHandler<MouseEvent>()
{
public void handle(MouseEvent e)
{
archer.setX((int)e.getSceneX());
archer.setY((int)e.getSceneY());
archer.drawCharStand(gc);
}
});
}
});
Не могли бы вы прояснить, что именно вы пытаетесь сделать? Вы хотите, чтобы лучник был помещен, когда пользователь нажимает клавишу на клавиатуре, а затем щелкает где-то на экране? Или вы хотите кликать? Первый щелчок мыши активирует действие места размещения, а второй щелчок фактически размещает лучника? – MojoJojo
Пользователь должен нажать кнопку, а затем, щелкнув пятно на экране, лучник будет помещен туда, где произошел щелчок. – theAnon
Как добавить переменную, отслеживающую, была ли кнопка нажата предыдущая, и объединение вышеперечисленных обработчиков в один метод? – MojoJojo