Игра — ничто без ввода, а благодаря поддержке Pygame как мыши, так и сенсорного ввода вы можете обеспечить доступность своей игры.
В наше время устройства с сенсорным экраном повсюду. Неудивительно, что разработчики игр все чаще используют сенсорный ввод в своих играх, а фреймворки делают это все проще и проще.
PyGame упрощает создание игр и приложений, использующих преимущества сенсорного ввода.
Поддержка Touch от PyGame
PyGame имеет встроенную поддержку работы с сенсорным вводом. Это включает в себя поддержку сенсорного ввода с помощью мыши и пальцев.
Чтобы обнаружить мышь, вы можете использовать игра. МЫШЬКНОПКА ВНИЗ и игра. МЫШЬКНОПКА ВВЕРХ события. Например:
для событие в pygame.event.get():
если event.type == pygame. КНОПКА МЫШИ ВНИЗ:
Распечатать("Кнопка мыши нажата")
Чтобы обнаружить сенсорный ввод, вы можете использовать игра. палец вниз и игра. палец вверх события. Например:
для событие в pygame.event.get():
если event.type == pygame. ВНИЗ:
Распечатать(«Палец коснулся экрана»)
Создание простой игры
Вы можете найти весь код в это репозиторий GitHub.
Начните с создания простой игры. Эта игра будет состоять из персонажа игрока, которого вы можете перемещать по экрану с помощью сенсорного ввода. Для этого вам потребуется создать игровой цикл и персонажа игрока.
Прежде чем начать, убедитесь, что у вас есть pip установлен на вашем устройстве, затем используйте следующую команду для установки PyGame модуль:
pip установить pygame
Теперь импортируйте модуль PyGame в код вашей игры:
Импортировать пигейм
pygame.init()
После этого создайте игровое окно и игровой объект:
# Настроить отображение
размер = (400, 400)
screen = pygame.display.set_mode (размер)# Создаем объект игрока
игрок = пигейм. Поверхность((50, 50))
игрок.заполнить((255, 0, 0))
# Установить начальную позицию игрока
player_pos = [175, 175]
Наконец, создайте игровой цикл:
# Цикл игры
работает = Истинныйпока бег:
# Проверяем события
для событие в pygame.event.get():
если event.type == pygame. ПОКИДАТЬ:
работает = ЛОЖЬ# Обновить позицию игрока
player_pos[0] += 5
player_pos[1] += 5# Рисуем игрока
screen.blit (игрок, player_pos)
# Обновить дисплей
pygame.display.update()
Обратите внимание, что приведенный выше код создает только простую игру, в которой персонаж игрока перемещается по экрану. Чтобы сделать игру более интересной, вы можете добавить физику и коллизии создавать препятствия для преодоления игроком.
Сенсорные входы мыши для движения игрока
Теперь, когда у вас есть игра с персонажем игрока, вы можете начать добавлять сенсорный ввод. Для этого вам нужно будет добавить обработчик событий для ввода мышью. Добавить игра. МЫШЬКНОПКА ВНИЗ и игра. МЫШЬКНОПКА ВВЕРХ события в игровой цикл.
Создайте обработчик событий для ввода мыши. Когда игрок нажимает кнопку мыши, положение персонажа обновляется до текущего положения мыши. Программа проигнорирует отпускание кнопки мыши, так как в этом случае ей не нужно предпринимать никаких действий.
# Цикл игры
работает = Истинныйпока бег:
# Проверяем события
для событие в pygame.event.get():
если event.type == pygame. ПОКИДАТЬ:
работает = ЛОЖЬ
# Проверяем ввод мышью
Элиф event.type == pygame. КНОПКА МЫШИ ВНИЗ:
mouse_x, mouse_y = событие.pos
player_pos[0] = мышь_х
player_pos[1] = мышь_у
Элиф event.type == pygame. КНОПКА МЫШИ:
проходить
экран.заполнить((0, 0, 0))# Рисуем игрока
screen.blit (игрок, player_pos)
# Обновить дисплей
pygame.display.update()
Вы также можете добавить дополнительную логику в обработчик событий, чтобы игрок двигался в ответ на действия мыши.
Сенсорный ввод для движения игрока
В дополнение к вводу с помощью мыши вы также можете добавить ввод с помощью пальцев. Для этого вам потребуется добавить обработчик событий для сенсорного ввода.
Добавить игра. палец вниз и игра. палец вверх события в игровой цикл:
# Цикл игры
работает = Истинныйпока бег:
# Проверяем события
для событие в pygame.event.get():
если event.type == pygame. ПОКИДАТЬ:
работает = ЛОЖЬ
# Проверяем ввод мышью
Элиф event.type == pygame. КНОПКА МЫШИ ВНИЗ:
mouse_x, mouse_y = событие.pos
player_pos[0] = мышь_х
player_pos[1] = мышь_у
Элиф event.type == pygame. КНОПКА МЫШИ:
проходить
# Проверяем ввод пальцами
Элиф event.type == pygame. ВНИЗ:
finger_x, finger_y = событие.поз.
player_pos[0] = палец_x
player_pos[1] = палец_у
Элиф event.type == pygame. ВВЕРХ:
проходитьэкран.заполнить((0, 0, 0))
# Рисуем игрока
screen.blit (игрок, player_pos)
# Обновить дисплей
pygame.display.update()
Обратите внимание, как это похоже на обработчик события ввода мышью. Этот обработчик событий обновляет положение персонажа, когда игрок нажимает пальцем на экран. Когда они отпускают палец, ничего не происходит. Это позволяет вам создать игру, которой вы можете управлять, используя сенсорный ввод как мышью, так и пальцем. Имейте в виду, что вы также можете использовать другие события, такие как игра. ДВИЖЕНИЕ ПАЛЬЦАМИ реагировать на движение пальцев.
Дополнительные сенсорные функции Pygame
Имея базовые сенсорные функции, вы можете начать добавлять более продвинутые функции. В PyGame есть несколько встроенных функций, которые помогут вам добавить в игру больше сенсорных функций.
Первая особенность – это pygame.mouse.set_visible() функция. Эта функция позволяет скрыть курсор мыши. Это может быть полезно, если вы хотите создать игру, в которой используется только сенсорный ввод, а не мышь.
Вот пример использования set_visible() функция:
pygame.mouse.set_visible(ЛОЖЬ)
pygame.mouse.set_pos() Функция устанавливает курсор мыши в определенную позицию на экране. Это полезно, если вы хотите переместить мышь в определенное место, не используя входные данные мыши.
Ниже приведен пример использования set_pos() функция:
pygame.mouse.set_pos(200, 200)
Вы можете использовать pygame.mouse.get_rel() функция для получения относительного движения мыши. Вы можете использовать это, чтобы определить, как далеко переместилась мышь с момента последнего события мыши.
Вот как вы можете использовать get_rel() функция:
dx, dy = pygame.mouse.get_rel()
Наконец, вы можете использовать pygame.mouse.get_pressed(), чтобы проверить, нажимает ли игрок какую-либо кнопку мыши. Это может быть полезно при создании игр с управлением мышью/сенсорным управлением.
Ниже приведен пример использования get_pressed() функция:
mouse_buttons = pygame.mouse.get_pressed()
PyGame также предоставляет КОЛЕСИКО МЫШИ тип события, который вы можете использовать для обнаружения прокрутки колеса мыши. Он поддерживает как вертикальную, так и горизонтальную прокрутку.
Вот пример:
для событие в pygame.event.get():
если event.type == pygame. КОЛЕСИКО МЫШИ:
если событие.у > 0:
Распечатать("Колесо мыши прокручено вверх")
Элиф событие.у < 0:
Распечатать("Колесо мыши прокручено вниз")
Создавайте интерактивные игры с сенсорным вводом
Благодаря сенсорному вводу теперь вы можете создавать интерактивные игры. Например, вы можете создать игру, в которой игрок может перемещаться по экрану с помощью сенсорного ввода. Вы также можете создавать игры на основе жестов, в которых игрок может выполнять различные жесты для запуска действий в игре.
Возможности безграничны, когда дело доходит до создания игр с сенсорным вводом. С помощью PyGame вы можете создавать веселые и интерактивные игры. Так что выходите и начинайте творить!