Заставьте своего главного героя двигаться в ответ на действия игрока с помощью событий клавиатуры и мыши библиотеки Arcade.

Arcade — это популярная библиотека Python, которую можно использовать для создания 2D-аркадных игр. Это простая в использовании библиотека, которая предоставляет простую основу для создания игр с помощью Python.

Одним из важнейших компонентов любой игры является движение игрока.

Создание простой игры в Arcade

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

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

библиотека установки pip

После этого создайте класс Player как подкласс класса аркада. Спрайт класс, и Моя игра класс как подкласс аркада. Окно. Моя игра класс будет иметь методы для настройки игровых объектов, отображения их на экране, обновления состояния игры и обработки ввода пользователя. Код для создания игрового экрана и объекта игрока выглядит следующим образом:

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

ЭКРАН_ШИРИНА = 800
ЭКРАН_ВЫСОТА = 600

сортИгрок(аркада. Спрайт):
деф__в этом__(себя):
супер().__инициализация__("игрок.png", 0.5)
self.center_x = ШИРИНА_ЭКРАНА // 2
self.center_y = SCREEN_HEIGHT // 2

сортМоя игра(аркада. Окно):
деф__в этом__(себя):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Моя игра")
селф.игрок = Никто
arcade.set_background_color (arcade.color. ЧЕРНЫЙ)

дефнастраивать(себя):
self.player = Игрок()

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

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

МояИгра().run()

Добавление движения игрока с помощью ввода с клавиатуры

Теперь, когда вы создали игровой экран и объект игрока, вы можете перемещать игрока в ответ на ввод с клавиатуры. Определите on_key_press() и on_key_release() методы, которые вы будете вызывать, когда игрок нажимает или отпускает клавишу.

дефon_key_press(я, ключ, модификаторы):
если ключ == аркада.ключ. ЛЕВЫЙ:
self.player.change_x = -5
Элиф ключ == аркада.ключ. ВЕРНО:
self.player.change_x = 5
Элиф ключ == аркада.ключ. ВВЕРХ:
self.player.change_y = 5
Элиф ключ == аркада.ключ. ВНИЗ:
self.player.change_y = -5

дефon_key_release(я, ключ, модификаторы):
если ключ == аркада.ключ. ЛЕВЫЙ или ключ == аркада.ключ. ВЕРНО:
self.player.change_x = 0
Элиф ключ == аркада.ключ. ВВЕРХ или ключ == аркада.ключ. ВНИЗ:
self.player.change_y = 0

При добавлении движения игрока с помощью ввода с клавиатуры вы можете настроить скорость движения, изменив значение, присвоенное self.player.change_x и self.player.change_y. Вы также можете добавить условия для ограничения передвижения игрока по игровому экрану.

Добавление движения игрока с помощью мыши

В дополнение к вводу с клавиатуры вы также можете добавить движение игрока с помощью мыши. Определите on_mouse_motion() метод, который будет запускаться, когда игрок перемещает мышь. Внутри метода установите center_x и центр_у свойства объекта игрока на текущую позицию мыши.

дефon_mouse_motion(я, х, у, дх, dy):
self.player.center_x = х
self.player.center_y = у

При добавлении движения игрока с помощью мыши вы можете настроить поведение объекта игрока, когда пользователь щелкает мышью или удерживает ее, определив такие методы, как on_mouse_press() или on_mouse_drag(). Вы можете использовать эти методы для запуска действий игрока, таких как стрельба или прыжок, в зависимости от игровой механики.

Представляем дополнительные функции

Вы можете улучшить движение игрока, принимая во внимание ускорение и замедление. Изменить on_key_press() метод вычитания или добавления к change_x и change_y свойства объекта игрока в зависимости от направления движения. Также установите change_x и change_y свойства на 0 в on_key_release() метод, как и прежде.

дефon_key_press(я, ключ, модификаторы):
если ключ == аркада.ключ. ЛЕВЫЙ:
self.player.change_x -= 5
Элиф ключ == аркада.ключ. ВЕРНО:
self.player.change_x += 5
Элиф ключ == аркада.ключ. ВВЕРХ:
self.player.change_y += 5
Элиф ключ == аркада.ключ. ВНИЗ:
self.player.change_y -= 5

дефon_key_release(я, ключ, модификаторы):
если ключ == аркада.ключ. ЛЕВЫЙ или ключ == аркада.ключ. ВЕРНО:
self.player.change_x = 0
Элиф ключ == аркада.ключ. ВВЕРХ или ключ == аркада.ключ. ВНИЗ:
self.player.change_y = 0

Как и в PyGame, вы также можете добавить обнаружение столкновений между объектом игрока и другие игровые объекты, такие как враги или препятствия в аркаде. Вы можете добиться этого, добавив следующий код в обновлять() метод Моя игра сорт:

дефобновлять(я, дельта_время):
self.player.update()

# Проверяем наличие коллизий между игроком и другими игровыми объектами
столкновения = arcade.check_for_collision_with_list (self.player, self.enemy_list)

для столкновение в столкновения:
столкновение.убить()

Создавайте увлекательные игры с интерактивным движением игроков

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

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