Реагировать на ввод жизненно важно для любой игры, и полезно поддерживать клавиатуру для пользователей, которые ее предпочитают. Узнайте, как это сделать с аркадной библиотекой Python.

Ввод данных с клавиатуры — важная часть разработки игр, и очень важно эффективно справляться с этим, чтобы обеспечить отличный пользовательский опыт. Библиотека Arcade предоставляет простой и эффективный способ обработки ввода с клавиатуры в играх на Python.

Создание простой игры с плеером

Вы можете найти полный код в это репозиторий GitHub.

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

пип установить аркада

После этого создайте скелет простой игры:

Импортировать аркада

ЭКРАН_ШИРИНА = 640
ЭКРАН_ВЫСОТА = 480

сортМоя игра(аркада. Окно):
деф__в этом__(собственность, ширина, высота):
super().__init__(ширина, высота, "Моя игра")
arcade.set_background_color (arcade.color. БЕЛЫЙ)

дефon_draw(себя):
аркада.start_render()

дефобновлять(я, дельта_время):
проходить

instagram viewer

Моя игра (SCREEN_WIDTH, SCREEN_HEIGHT)
аркада.run()

Это создает окно с белым фоном. Затем добавьте игрока в свою игру:

сортИгрок:
деф__в этом__(я, х, у):
я.х = х
селф.у = у
собственная скорость = 5
собственный радиус = 20

дефрисовать(себя):
arcade.draw_circle_filled(self.x, self.y, self.radius, arcade.color. СИНИЙ)

дефдвигай влево(себя):
self.x -= self.скорость

дефдвигаться вправо(себя):
self.x += self.скорость

дефmove_up(себя):
self.y += self.скорость

дефmove_down(себя):
self.y -= self.скорость

Это создает простой проигрыватель с синим кругом. Вы можете добавить этого игрока в свою игру, изменив Моя игра сорт:

Импортировать аркада

ЭКРАН_ШИРИНА = 640
ЭКРАН_ВЫСОТА = 480

сортМоя игра(аркада. Окно):
деф__в этом__(собственность, ширина, высота):
super().__init__(ширина, высота, "Моя игра")
arcade.set_background_color (arcade.color. БЕЛЫЙ)
self.player = Игрок (SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2)

дефon_draw(себя):
аркада.start_render()
self.player.draw()

дефобновлять(я, дельта_время):
проходить

дефосновной():
Моя игра (SCREEN_WIDTH, SCREEN_HEIGHT)
аркада.run()

если __имя__ == "__основной__":
основной()

Теперь у вас в игре есть игрок, которого вы можете нарисовать на экране.

Реагирование на нажатия и отпускания клавиш

Чтобы реагировать на действия пользователя в вашей игре, вам нужно обрабатывать нажатия и отпускания клавиш. Библиотека Arcade предоставляет два метода обработки этих событий: on_key_press и on_key_release.

Чтобы использовать эти методы, вам нужно определить их в аркада. Окно подкласс. Когда игрок нажимает или отпускает клавишу, аркада запускает соответствующий метод, передавая ему два аргумента: клавишу и модификаторы. ключ целое число, представляющее код нажатой или отпущенной клавиши. модификаторы это битовое поле, представляющее любые клавиши-модификаторы, которые также нажимал игрок, например Shift или Control.

Вот пример того, как реагировать на нажатие клавиши в вашей игре:

сортМоя игра(аркада. Окно):
дефon_key_press(я, ключ, модификаторы):
если ключ == аркада.ключ. ЛЕВЫЙ:
# Переместить игрока влево
Элиф ключ == аркада.ключ. ВЕРНО:
# Переместить игрока вправо
Элиф ключ == аркада.ключ. ВВЕРХ:
# Переместить игрока вверх
Элиф ключ == аркада.ключ. ВНИЗ:
# Переместить игрока вниз

Чтобы реагировать на ключевые выпуски, вы можете определить on_key_release метод таким же образом:

сортМоя игра(аркада. Окно):
дефon_key_release(я, ключ, модификаторы):
если ключ == аркада.ключ. ЛЕВЫЙ:
# Остановить перемещение игрока влево
Элиф ключ == аркада.ключ. ВЕРНО:
# Остановить перемещение игрока вправо
Элиф ключ == аркада.ключ. ВВЕРХ:
# Прекратить перемещение игрока вверх
Элиф ключ == аркада.ключ. ВНИЗ:
# Остановить перемещение игрока вниз

Важно отметить, что захват пользовательский ввод в pygame требует ручной проверки событий в игровом цикле. С другой стороны, библиотека Arcade автоматически вызывает соответствующие методы, когда игрок нажимает или отпускает клавишу. Это означает, что вам не нужно вручную проверять ключевые события в игровом цикле, что избавляет вас от хлопот с дополнительным кодом.

Настройка обработки ввода с клавиатуры в соответствии с потребностями вашей игры

Библиотека Arcade предоставляет множество способов настройки ввода с клавиатуры. Вы можете изменить привязки клавиш для своей игры или разрешить игроку настраивать свои собственные привязки клавиш.

Вы можете сделать это, определив словарь key_map который сопоставляет каждую клавишу соответствующему методу объекта player. Чтобы позволить игроку настраивать свои привязки клавиш, вы можете добавить меню настроек, которое изменяет key_map словарь на основе предпочтений игрока.

Вот пример:

сортМоя игра(аркада. Окно):
деф__в этом__(я, ширина, высота, заголовок):
super().__init__(ширина, высота, заголовок)
self.player = Игрок(100, 100)

self.key_map = {
аркада.ключ. СЛЕВА: self.player.move_left,
аркада.ключ. СПРАВА: self.player.move_right,
аркада.ключ. ВВЕРХ: self.player.move_up,
аркада.ключ. ВНИЗ: self.player.move_down
}

дефon_key_press(я, ключ, модификаторы):
если ключ в self.key_map:
self.key_map[ключ]()

дефon_key_release(я, ключ, модификаторы):
если ключ в self.key_map:
self.key_map[ключ + 1]()

Реагируйте на вводимые пользователем данные в режиме реального времени

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