Реагировать на ввод жизненно важно для любой игры, и полезно поддерживать клавиатуру для пользователей, которые ее предпочитают. Узнайте, как это сделать с аркадной библиотекой Python.
Ввод данных с клавиатуры — важная часть разработки игр, и очень важно эффективно справляться с этим, чтобы обеспечить отличный пользовательский опыт. Библиотека Arcade предоставляет простой и эффективный способ обработки ввода с клавиатуры в играх на Python.
Создание простой игры с плеером
Вы можете найти полный код в это репозиторий GitHub.
Прежде чем погрузиться в обработку ввода с клавиатуры, убедитесь, что у вас есть pip установлен на вашем устройстве. Используйте эту команду для установки аркадной библиотеки:
пип установить аркада
После этого создайте скелет простой игры:
Импортировать аркада
ЭКРАН_ШИРИНА = 640
ЭКРАН_ВЫСОТА = 480сортМоя игра(аркада. Окно):
деф__в этом__(собственность, ширина, высота):
super().__init__(ширина, высота, "Моя игра")
arcade.set_background_color (arcade.color. БЕЛЫЙ)дефon_draw(себя):
аркада.start_render()дефобновлять(я, дельта_время):
проходить
Моя игра (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]()
Реагируйте на вводимые пользователем данные в режиме реального времени
Реагирование на пользовательский ввод в режиме реального времени является важным аспектом создания увлекательной игры. Потратив время на правильную обработку ввода с клавиатуры в игре, вы сможете создать более привлекательный и захватывающий опыт для ваших игроков и, в конечном счете, сделать вашу игру выделяющейся в многолюдном рынок.