Заставьте своего главного героя двигаться в ответ на действия игрока с помощью событий клавиатуры и мыши библиотеки Arcade.
Arcade — это популярная библиотека Python, которую можно использовать для создания 2D-аркадных игр. Это простая в использовании библиотека, которая предоставляет простую основу для создания игр с помощью Python.
Одним из важнейших компонентов любой игры является движение игрока.
Создание простой игры в Arcade
Вы можете найти полный код в этом репозитории GitHub.
Прежде чем начать, убедитесь, что у вас есть pip установлен на вашем устройстве. Используйте эту команду для установки аркадной библиотеки:
библиотека установки pip
После этого создайте класс Player как подкласс класса аркада. Спрайт класс, и Моя игра класс как подкласс аркада. Окно. Моя игра класс будет иметь методы для настройки игровых объектов, отображения их на экране, обновления состояния игры и обработки ввода пользователя. Код для создания игрового экрана и объекта игрока выглядит следующим образом:
Импортировать аркада
ЭКРАН_ШИРИНА = 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)
для столкновение в столкновения:
столкновение.убить()
Создавайте увлекательные игры с интерактивным движением игроков
Интерактивное движение игроков — важнейший аспект любой увлекательной игры. Использование различных типов механики движения, таких как прыжки, бег, полет и скольжение, может добавить игре разнообразия и азарта.
Предоставление игрокам контроля над их движением добавляет ощущение свободы действий и погружения, что может привести к более приятному игровому процессу.