Хотите усовершенствовать игру в борьбе с опасностью? Превратите жизни в здоровье и добавьте дополнительное измерение в свой игровой процесс.

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

К счастью, реализация системы здравоохранения на Python с использованием библиотеки Arcade проста и требует всего несколько шагов.

Создайте простую игру

Первый, установить пип на свое устройство и используйте следующую команду для установки аркадной библиотеки:

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

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

Код, используемый в этой статье, доступен в этом Репозиторий GitHub и вы можете использовать его бесплатно по лицензии MIT.

instagram viewer

Создайте новый файл с именем простая-game.py и добавьте приведенный ниже код:

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

# Установить размеры окна
ЭКРАН_ШИРИНА = 800
ЭКРАН_ВЫСОТА = 600

# Установить скорость передвижения игрока
PLAYER_MOVEMENT_SPEED = 5
белый = аркада.цвет. БЕЛЫЙ
синий = аркада.цвет. СИНИЙ
красный = аркада.цвет. КРАСНЫЙ

сортGameWindow(аркада. Окно):
деф__в этом__(собственность, ширина, высота):
super().__init__(ширина, высота)
arcade.set_background_color (белый)

# Создаем объекты игрока и противника
self.player = аркада. Спрайткруг(30, синий)
self.enemy = аркада. Спрайткруг(30, красный)
self.player.center_x = 100
self.player.center_y = 100
self.enemy.center_x = 400
self.enemy.center_y = 300

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

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

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

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

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

Вы должны увидеть окно, содержащее два символа, представленных синими и красными кружками:

Чтобы внедрить систему здравоохранения, определите переменные и константы, связанные со здоровьем. Вы будете использовать их, чтобы отслеживать текущее состояние здоровья игрока и определять правила нанесения урона и исцеления. Добавьте следующий код внутри GameWindow сорт:

сортGameWindow(аркада. Окно):
деф__в этом__(собственность, ширина, высота):
# ...
# Переменные и константы, связанные со здоровьем
self.player_health = 100

# очков здоровья восстанавливается в секунду
self.heal_rate = 1

# Таймер для исцеления
self.heal_timer = 0

дефобновлять(я, дельта_время):
# ...
# Обновление таймера лечения
self.heal_timer += delta_time

# Лечит здоровье игрока каждые 2 секунды
если self.heal_timer >= 2:
self.player_health += self.heal_rate
self.heal_timer = 0

# Убедитесь, что здоровье не превышает максимальное значение
если self.player_health > 100:
self.player_health = 100

Реализация механики повреждений и исцеления

Чтобы реализовать механику повреждений и исцеления, обнаруживать столкновения между игроком и противником. Уменьшайте здоровье игрока при столкновении с противником и восстанавливайте здоровье игрока каждые 2 секунды, когда они не сталкиваются. Изменить обновлять() метод и добавьте следующий код:

сортGameWindow(аркада. Окно):
деф__в этом__(собственность, ширина, высота):
# ...

дефобновлять(я, дельта_время):
# Обнаружение столкновений между игроком и противником
если arcade.check_for_collision (self.player, self.enemy):
self.player_health -= 5

# ...

Управление сценариями смерти игрока и Game Over

Чтобы управлять сценариями смерти игрока и окончания игры, проверьте, достигает ли здоровье игрока нуля или ниже. Если здоровье упадет до нуля, считайте игрока мертвым и завершите игру. Изменить обновлять() метод со следующим кодом:

сортGameWindow(аркада. Окно):
деф__в этом__(собственность, ширина, высота):
# ...

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

# Проверить, если здоровье игрока равно нулю или ниже
если self.player_health <= 0:
# Завершить игру
аркада.close_window()

# ...

Визуализация полосы здоровья

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

сортGameWindow(аркада. Окно):
деф__в этом__(собственность, ширина, высота):
# ...

дефon_draw(себя):
аркада.start_render()
self.player.draw()
self.enemy.draw()
серый = аркада.цвет. СВЕТЛО-СЕРЫЙ
зеленый = аркада.цвет. ЗЕЛЕНЫЙ

# Нарисовать полосу здоровья
arcade.draw_rectangle_filled (SCREEN_WIDTH // 2, 20,
ЭКРАН_ШИРИНА, 20, серый)

ширина_здоровья = self.player_health / 100 * SCREEN_WIDTH

arcade.draw_rectangle_filled (health_width // 2, 20,
здоровье_ширина, 20, зеленый)

Ниже приведен вывод:

Включая дополнительные функции

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

Числовой дисплей здоровья

В дополнение к полосе здоровья вы можете отображать оставшееся здоровье в виде числового значения на экране. Это обеспечивает точную индикацию состояния здоровья игрока. Добавьте следующий код внутри on_draw() метод:

# Внутри метода on_draw()
черный = аркада.цвет. ЧЕРНЫЙ
текст = f"Здоровье: {self.player_health}"
arcade.draw_text (текст, 10, 10черный, 14)

Бонусы здоровья

Чтобы ввести бонусы для здоровья, вы можете создавать специальные объекты, которые повышают здоровье игрока при столкновении с ними. Вот пример того, как вы можете реализовать эту функцию:

# Внутри метода update()
если arcade.check_for_collision (self.player, self.power_up):
self.player_health += 20

# Убрать усиление из игры
self.power_up.kill()

Разнообразные типы врагов

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

# Внутри метода update()
если arcade.check_for_collision (self.player, self.enemy):
если self.enemy.type == "слабый":
self.player_health -= 5
Элиф self.enemy.type == "сильный":
self.player_health -= 20

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

Передовой опыт для системы здравоохранения

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

Сделайте это модульным

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

Проверка входных данных и меры безопасности

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

Механизм сохранения и загрузки

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

Тестирование и обработка ошибок

Тщательно протестируйте реализацию Health System, чтобы убедиться в ее правильности и надежности. Используйте соответствующие методы обработки ошибок для эффективной обработки исключений и пограничных случаев.

Постоянная обратная связь о здоровье

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

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

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

Добавление системы здоровья в вашу игру может значительно улучшить общее впечатление от игры. Он вносит элемент риска и испытаний, делая игровой процесс более увлекательным и полезным.

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