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

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

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

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

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

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

Теперь создайте простую игру, используя библиотеку Python Arcade.

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

В этой игре игрок может перемещаться влево и вправо с помощью клавиш со стрелками, а препятствие размещается на той же оси Y.

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

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

сортМоя игра(аркада. Окно):
деф__в этом__(собственность, ширина, высота):
super().__init__(ширина, высота)
self.player_x = ширина // 3
Собственная оценка = 0

дефon_key_press(я, ключ, модификаторы):
если ключ == аркада.ключ. ЛЕВЫЙ:
self.player_x -= 10
Элиф ключ == аркада.ключ. ВЕРНО:
self.player_x += 10

дефобновлять(я, дельта_время):
# Обновить игровую логику здесь
проходить

дефon_draw(себя):
аркада.start_render()
arcade.draw_circle_filled (self.player_x, 50, 20, аркада.цвет. СИНИЙ)
arcade.draw_rectangle_filled(400, 50, 100, 50, аркада.цвет. КРАСНЫЙ)

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

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

Отслеживание и расчет результатов

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

сортМоя игра(аркада. Окно):
деф__в этом__(собственность, ширина, высота):
super().__init__(ширина, высота)
self.player_x = ширина // 3
Собственная оценка = 0

дефon_key_press(я, ключ, модификаторы):
если ключ == аркада.ключ. ЛЕВЫЙ:
self.player_x -= 10
Элиф ключ == аркада.ключ. ВЕРНО:
self.player_x += 10

дефобновлять(я, дельта_время):
если self.player_x > 330и self.player_x < 470:
самооценка += 1

Отображение счета

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

сортМоя игра(аркада. Окно):
# ...

дефon_draw(себя):
аркада.start_render()
arcade.draw_circle_filled (self.player_x, 50, 20, аркада.цвет. СИНИЙ)
arcade.draw_rectangle_filled(400, 300, 100, 50, аркада.цвет. КРАСНЫЙ)

счет_текст = f"Оценка: {самооценка}"
arcade.draw_text (score_text, 10, 10, аркада.цвет. БЕЛЫЙ, 14)

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

Сохранение рекорда

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

Использовать load_high_score метод для чтения рекорда из файла с именем high_score.txt и вернуть его. После этого вы можете сохранить новый рекорд в файл, используя кнопку save_high_score метод.

сортМоя игра(аркада. Окно):
деф__в этом__(собственность, ширина, высота):
super().__init__(ширина, высота)
self.player_x = ширина // 3
Собственная оценка = 0
self.high_score = self.load_high_score()

дефload_high_score(себя):
пытаться:
с открыть("high_score.txt", "р") как файл:
возвращаться интервал (файл.read())
кроме FileNotFoundError:
возвращаться0

дефsave_high_score(себя):
с открыть("high_score.txt", "ж") как файл:
file.write (str (self.high_score))

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

если self.score > self.high_score:
self.high_score = self.score
self.save_high_score()

Отображение рекорда

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

сортМоя игра(аркада. Окно):
# ...

дефon_draw(себя):
# ...

high_score_text = f"Высокий балл: {self.high_score}"
arcade.draw_text (high_score_text, 10, 30, аркада.цвет. БЕЛЫЙ, 14)

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

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

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

Бонусы

Бонусы — это особые предметы, дающие игрокам временные преимущества или бонусные очки. Создать activ_power_up метод, который запускает активацию включения питания, устанавливая power_up_active установите флажок Истина.

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

Вот пример реализации функции усиления в вашей игре.

сортМоя игра(аркада. Окно):
деф__в этом__(собственность, ширина, высота):
super().__init__(ширина, высота)
self.player_x = ширина // 3
Собственная оценка = 0
self.power_up_active = ЛОЖЬ

дефобновлять(я, дельта_время):
если self.power_up_active:
# Применяйте эффекты усиления во время игры
self.apply_power_up_effects()
самооценка += 10

дефapply_power_up_effects(себя):
# Добавьте сюда специальную логику включения питания
проходить

дефactiv_power_up(себя):
self.power_up_active = Истинный
# Установите таймер или продолжительность эффекта включения
arcade.schedule (self.deactivate_power_up, 10.0)

дефdeactivate_power_up(я, дельта_время):
self.power_up_active = ЛОЖЬ

Комбинированная система

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

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

сортМоя игра(аркада. Окно):
деф__в этом__(собственность, ширина, высота):
super().__init__(ширина, высота)
self.player_x = ширина // 3
Собственная оценка = 0
self.combo_counter = 0

дефобновлять(я, дельта_время):
# Проверяем на успешные действия
если self.check_successful_action():
self.increase_combo_counter()
еще:
self.reset_combo_counter()

дефувеличить_combo_counter(себя):
self.combo_counter += 1
self.score += self.combo_counter

дефreset_combo_counter(себя):
self.combo_counter = 0

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

Лучшие практики управления счетами

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

Значимые механизмы подсчета очков

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

Рассмотрите возможность присвоения разных баллов разным действиям или событиям в зависимости от их сложности или важности для игрового процесса.

Визуальная обратная связь

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

Звуковые эффекты и анимация

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

Баланс между сложностью и шкалой баллов

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

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

Улучшите взаимодействие с игрой с помощью отслеживания результатов

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

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