Дайте вашим игрокам что-нибудь, чтобы они могли получить что-то по мере прохождения вашей игры.
Бонусы и предметы коллекционирования являются важными игровыми элементами, которые могут улучшить игровой процесс и добавить азарта в аркадные игры. Они предоставляют игрокам дополнительные возможности, награды и испытания. С аркадной библиотекой вы сможете создавать увлекательные игры с бонусами и коллекционными предметами в кратчайшие сроки.
Создайте простую игру
Начните с базовой настройки, где игрок может двигаться в четырех направлениях (влево, вправо, вверх и вниз) с помощью ввода с клавиатуры. Кроме того, добавьте один вражеский объект, чтобы обеспечить взаимодействие в игровой среде.
Код, используемый в этой статье, доступен в этом Репозиторий GitHub и вы можете использовать его бесплатно по лицензии MIT.
Создайте новый файл с именем простая-game.py и добавьте приведенный ниже код:
Импортировать аркада
синий = аркада.цвет. СИНИЙ
красный = аркада.цвет. КРАСНЫЙ
черный = аркада.цвет. ЧЕРНЫЙ
белый = аркада.цвет. БЕЛЫЙ
желтый = аркада.цвет. ЖЕЛТЫЙ
зеленый = аркада.цвет. ЗЕЛЕНЫЙ
оранжевый = аркада.цвет. АПЕЛЬСИНсортИгра(аркада. Окно):
деф__в этом__(собственность, ширина, высота):
super().__init__(ширина, высота)
arcade.set_background_color (черный)self.player = аркада. Спрайткруг(20, синий)
self.player.center_x = ширина // 2
self.player.center_y = высота // 2self.enemy = аркада. SpriteSolidColor(20, 20, красный)
self.enemy.center_x = ширина // 4
self.enemy.center_y = высота // 4дефon_draw(себя):
аркада.start_render()
self.player.draw()
self.enemy.draw()дефобновлять(я, дельта_время):
проходитьдефon_key_press(я, ключ, модификаторы):
если ключ == аркада.ключ. ЛЕВЫЙ:
self.player.center_x -= 10
Элиф ключ == аркада.ключ. ВЕРНО:
self.player.center_x += 10
Элиф ключ == аркада.ключ. ВВЕРХ:
self.player.center_y += 10
Элиф ключ == аркада.ключ. ВНИЗ:
self.player.center_y -= 10дефосновной():
игра = игра(800, 600)
аркада.run()
если __имя__ == "__основной__":
основной()
Запустите этот код, и вы получите базовую игру с движением игрока и вражеским объектом.
Создание игровых состояний
Чтобы включить бонусы и предметы коллекционирования, вам необходимо установить игровые состояния, такие как счет и здоровье. Ты можешь управлять счетом и здоровье с помощью отдельной переменной. Измените код, чтобы включить эти функции. Здоровье игрока будет уменьшаться при столкновении с вражеским объектом.
сортИгра(аркада. Окно):
деф__в этом__(собственность, ширина, высота):
super().__init__(ширина, высота)Собственная оценка = 0
само.здоровье = 100дефon_draw(себя):
аркада.draw_text(f"Оценка: {самооценка}", 10, 10, белый)
аркада.draw_text(f"Здоровье: {я.здоровье}", 10, 30, белый)дефобновлять(я, дельта_время):
если arcade.check_for_collision (self.player, self.enemy):
само.здоровье -= 10если само.здоровье <= 0:
self.game_over()
дефигра закончена(себя):
# Добавьте сюда логику игры вместо
проходить
Теперь здоровье игрока уменьшается на 10 при столкновении с врагом, а на экране отображаются значения очков и здоровья.
Добавление предметов коллекционирования
Затем создайте предметы коллекционирования, которые при сборе увеличат счет игрока на 10. Эти предметы коллекционирования будут иметь разные формы для визуального разнообразия. Создайте новый файл с именем коллекционирование.py и добавьте код с приведенным ниже обновлением:
сортИгра(аркада. Окно):
деф__в этом__(собственность, ширина, высота):
super().__init__(ширина, высота)self.collectibles = аркада. СпрайтСписок()
для _ в диапазон(5):
коллекционный = аркадный. SpriteSolidColor(20, 40, желтый)
collectible.center_x = random.randint(0, ширина)
collectible.center_y = random.randint(0, высота)
self.collectibles.append (коллекционные)дефon_draw(себя):
аркада.start_render()
self.player.draw()
self.enemy.draw()
self.collectibles.draw()
аркада.draw_text(f"Оценка: {самооценка}", 10, 10, белый)
аркада.draw_text(f"Здоровье: {я.здоровье}", 10, 30, белый)
дефобновлять(я, дельта_время):
для коллекционный в самостоятельные предметы коллекционирования:
если arcade.check_for_collision (собственный игрок, предмет коллекционирования):
самооценка += 10
collectible.remove_from_sprite_lists()
Создайте список предметов коллекционирования с пятью экземплярами, каждый из которых представлен желтым прямоугольником. Когда игрок сталкивается с предметом коллекционирования, его счет увеличивается на 10, а предмет коллекционирования удаляется из списка спрайтов.
Добавление бонусов
Теперь вы можете добавлять бонусы в свою игру. Когда игрок собирает усиление, вокруг него появляется щит на 10 секунд. За это время, если игрок сталкивается с врагом, они уничтожат врага. Создайте новый файл с именем power-ups.py и добавьте код с приведенным ниже обновлением:
сортИгра(аркада. Окно):
деф__в этом__(собственность, ширина, высота):
super().__init__(ширина, высота)self.power_up = аркада. SpriteSolidColor(50, 20, зеленый)
self.power_up.center_x = random.randint(0, ширина)
self.power_up.center_y = random.randint(0, высота)self.shield_active = ЛОЖЬ
self.shield_duration = 10
self.shield_timer = 0дефon_draw(себя):
аркада.start_render()
self.player.draw()
self.enemy.draw()
self.collectibles.draw()
self.power_up.draw()
аркада.draw_text(f"Оценка: {самооценка}", 10, 10, белый)
аркада.draw_text(f"Здоровье: {я.здоровье}", 10, 30, белый)дефобновлять(я, дельта_время):
если arcade.check_for_collision (self.player, self.enemy):
еслинет self.shield_active:
само.здоровье -= 10
если само.здоровье <= 0:
self.game_over()
еще:
self.enemy.remove_from_sprite_lists()если self.shield_active:
self.shield_timer += delta_timeесли self.shield_timer >= self.shield_duration:
self.shield_active = ЛОЖЬ
self.shield_timer = 0для коллекционный в самостоятельные предметы коллекционирования:
если arcade.check_for_collision (собственный игрок, предмет коллекционирования):
самооценка += 10
collectible.remove_from_sprite_lists()
если arcade.check_for_collision (self.player, self.power_up):
self.shield_active = Истинный
self.power_up.remove_from_sprite_lists()
Ниже приведен вывод:
Включая дополнительные функции
Вы можете улучшить систему бонусов и предметов коллекционирования, добавив дополнительные функции. Например, вы можете создать усиление таймера, которое продлевает время игры при его сборе. Создайте новый файл с именем таймер-power-up.py и добавьте код с приведенным ниже обновлением:
сортИгра(аркада. Окно):
деф__в этом__(собственность, ширина, высота):
super().__init__(ширина, высота)
arcade.set_background_color (черный)self.player = аркада. Спрайткруг(20, синий)
# ...self.timer_power_up = аркада. SpriteSolidColor(40, 20, апельсин)
self.timer_power_up.center_x = random.randint(0, ширина)
self.timer_power_up.center_y = random.randint(0, высота)self.game_time = 60# Начальное время игры в секундах
self.timer_power_up_duration = 10# ...
дефобновлять(я, дельта_время):
# ...если arcade.check_for_collision (self.player, self.timer_power_up):
self.game_time += self.timer_power_up_duration
self.timer_power_up.remove_from_sprite_lists()# ...
дефосновной():
игра = игра(800, 600)
аркада.run()
если __имя__ == "__основной__":
основной()
Лучшие практики для усилений и предметов коллекционирования
Бонусы и предметы коллекционирования играют решающую роль в улучшении игрового процесса аркадных игр. Чтобы эти элементы доставляли удовольствие и хорошо интегрировались в игру, важно следовать некоторым рекомендациям:
Визуальная ясность и согласованность
Используйте различные и визуально привлекательные спрайты для бонусов и предметов коллекционирования, чтобы выделить их среди других элементов игры. Убедитесь, что внешний вид бонусов и предметов коллекционирования соответствует их эффекту и назначению в игре.
Поддерживайте последовательность в дизайне, цветовых схемах и размерах бонусов и предметов коллекционирования на протяжении всей игры.
Баланс и вызов
Отрегулируйте редкость и распределение бонусов и предметов коллекционирования, чтобы поддерживать у игроков ощущение сложности и награды. Не перегружайте игроков слишком большим количеством бонусов или коллекционных предметов, так как это может уменьшить эффект и волнение от их поиска.
Тщательно сбалансируйте эффективность и продолжительность бонусов, чтобы они не были слишком сильными или не вызывающими восторга.
Четкие индикаторы и обратная связь
Обеспечьте четкие визуальные и звуковые индикаторы, когда игрок собирает усиление или коллекционный предмет. Отображение временных визуальных эффектов, таких как анимация или частицы, для обозначения активации бонусов и их продолжительности.
Отношения вызов-вознаграждение
Убедитесь, что бонусы и предметы коллекционирования приносят игроку значимые награды, такие как увеличение очков, дополнительные способности или увеличение времени игры. Совместите сложность получения бонусов и предметов коллекционирования с преимуществами, которые они предлагают. Более сложные задачи должны приносить более ценные награды.
Тестирование и балансировка
Всесторонне протестируйте игру, чтобы увидеть, как игроки взаимодействуют с бонусами и предметами коллекционирования. Используйте отзывы игроков, чтобы точно настроить распределение, продолжительность и эффекты бонусов и предметов коллекционирования, чтобы создать сбалансированный и приятный игровой процесс.
Следуя этим передовым методам, вы сможете создать увлекательную и хорошо сбалансированную систему бонусов и коллекционных предметов, которая улучшит игровой процесс и увлечет игроков в вашу аркадную игру.
Сделайте игры более увлекательными с бонусами и предметами коллекционирования
Бонусы и коллекционные предметы делают аркадные игры еще увлекательнее и интереснее. Они не только предоставляют игрокам новые способности и награды, но также создают интересные задачи и стратегические решения.
Включив эти функции с помощью библиотеки Python Arcade, вы можете сделать свои игры более увлекательными и улучшить общий игровой процесс для ваших игроков. Не забывайте экспериментировать, повторять и давать волю своему творчеству, чтобы создавать уникальные и захватывающие бонусы и предметы коллекционирования, соответствующие теме и механике вашей игры.