Вопрос

Я пишу игру на Java, и мне нужно взаимодействие с мышью. Я собирался использовать MouseAdapter, но я немного изучил его, и у него, похоже, нет никаких средств для определения местоположения указателя мыши без выполнения щелчка или действия ... Что было бы рекомендованным способом делать это?

Пара вопросов:

<Ол>
  • Будет ли мышь " расположение " относится к расположению мыши по отношению к границам монитора, границам игры, или это будет представлено как движения относительно предыдущего местоположения?

  • Как отключить указатель мыши в оконном приложении? (т.е. шутер от первого лица, в котором движения мыши вращают вид игроков, а не перемещают указатель) Возможно ли это?

  • Это было полезно?

    Решение

    Посмотрите на MouseMotionListener . Это позволит вам отслеживать движения мыши. Это даст вам расположение мыши внутри компонента, к которому он прикреплен. Но если вы посмотрите на класс SwingUtilities там некоторые удобные методы для преобразования точек на экран или другие компоненты или монитор.

    Для курсора у вас есть возможность установить собственное растровое изображение для курсора, вы можете посмотреть . Или для более свежего ответа SO, вы можете посмотреть здесь . Таким образом, вы можете скрыть курсор или установить для него пустое растровое изображение, а затем перехватывать движения мыши и события, чтобы управлять вашим видом.

    Другие советы

    Учебник по событиям мыши находится по адресу: http://java.sun.com/docs/books/ учебник / uiswing / события / mouselistener.html

    Если вы посмотрите здесь: http://java.sun.com/ JavaSE / 7 / документы / API / Java / AWT / событие / MouseEvent.html

    Вы можете получить абсолютное местоположение на экране или координаты относительно компонента.

    Если есть движение, чтобы изменить направление, вам нужно удалить слушателя мыши, или вы можете просто иметь некоторую логику, где обработчик событий просто выйдет, ничего не делая. Я думаю, что это было бы лучше, иначе вы должны отслеживать, когда добавляете и удаляете слушателей.

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top