Обработка событий мыши
Пожалуй, нет ни одной игры, где бы не было взаимодействия с игроком, т.е. интерактивности. В нашем случае, как у программиста, у вас есть две возможности обеспечить игроку взаимодействие с компьютером: это использование мыши и клавиатуры. В этой и следующей главе я расскажу вам, как обрабатывать события мыши и клавиатуры в апплете. И опять же, это намного легче реализовывается в апплете, нежели в реальном приложении, созданном, к примеру, с использованием Java Swing. Также вы вряд ли сможете использовать в приложениях вещи об обработке событий, которые вы здесь узнаете, потому что такие обработки сильно различаются в разных программах. Однако в любой хорошей книге по Java имеется раздел, посвященный обработке событий, так что проблем с изучением у вас быть не должно.
А сейчас давайте изменим апплет с двигающимся шаром так, чтобы шар менял направление, когда юзер кликает по апплету.
Чтобы сделать это, следует реализовать только один метод в нашем классе Main с названием mouseDown. Этот метод будет выглядеть так:
// Метод обработки событий мыши
public boolean mouseDown (Event e, int x, int y)
{
-
// Изменяем направление
x_speed = - (x_speed);
// НЕ ЗАБЫВАТЬ (хотя здесь не обязательно)!!
return true;
Конечно, вы можете обрабатывать и бругие события, не только mouseDown. Java делает возможным переписать следующие методы таким же путем, как я сделал выше и обрабатывать другие события мыши. Ниже приведен список методов:
1. События щелчка мыши:
а. public boolean mouseDown (Event e, int x, int y): обрабатывает события, происходящие, когда кнопка мыши нажата
б. public boolean mouseUp (Event e, int x, int y): обрабатывает события, происходящие, когда кнопка мыши отпущена
Используйте переменную e.clickCount чтобы получить число кликов. Таким образом вы сможете отслеживать, к примеру, двойные клики! Вы увидите пример применения этого пункта в главе 5 ("Наша первая игра").
2. Движения мыши:
а. public boolean mouseMove (Event e, int x, int y): обрабатывает события, когда курсор мыши проходит над апплетом
б. public boolean mouseDrag (Event e, int x, int y): обрабатывает события, когда курсор мыши проходит над апплетом с нажатой левой кнопкой
3. Позиция мыши:
а. public boolean mouseEnter(Event e, int x, int y): обрабатывает события, когда курсор мыши входит в поле апплета
б. public boolean mouseExit (Event e, int x, int y): обрабатывает события, когда курсор мыши входит покидает поле апплета
С помощью переменных int x и int y вы можете получить значения координат, где произошло событие, что очень важно для многих игр. Также вы следует заботиться, чтобы возвращеть выражение "return true;", что часто не влияет на функциональность ваших игр, но is expected by the method.
Скачать исходный код апплета
Запустить апплет
Следующая глава:
Обработка событий клавиатуры