Дайте на вашите играчи нещо, което да вземат, докато напредват във вашата игра.

Увеличенията и колекционерските предмети са основни елементи на играта, които могат да подобрят геймплея и да добавят вълнение към аркадните игри. Те предоставят на играчите допълнителни способности, награди и предизвикателства. С аркадната библиотека ще можете да създавате завладяващи игри с бонуси и колекционерски предмети за нула време.

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

Започнете с основна настройка, където играчът може да се движи в четири посоки (наляво, надясно, нагоре и надолу), като използвате въвеждането от клавиатурата. Освен това въведете един вражески обект, за да осигурите взаимодействие в средата на играта.

Кодът, използван в тази статия, е достъпен в това GitHub хранилище и е безплатен за използване под лиценза на MIT.

Създайте нов файл с име проста-игра.py и добавете кода по-долу:

импортиране аркада

синьо = arcade.color. СИН
червено = arcade.color. ЧЕРВЕН
черно = arcade.color. ЧЕРЕН
бяло = аркада.цвят. БЯЛ
жълто = arcade.color. ЖЪЛТ
зелено = arcade.color. ЗЕЛЕНО
оранжево = arcade.color. ПОРТОКАЛ

instagram viewer

класИгра(аркадна. прозорец):
деф__в него__(аз, ширина, височина):
super().__init__(ширина, височина)
arcade.set_background_color (черно)

self.player = аркада. SpriteCircle(20, син)
self.player.center_x = ширина // 2
self.player.center_y = височина // 2

self.nemy = аркада. SpriteSolidColor(20, 20, червен)
self.enemy.center_x = ширина // 4
self.enemy.center_y = височина // 4

дефon_draw(себе си):
arcade.start_render()
self.player.draw()
self.enemy.draw()

дефактуализация(самостоятелно, делта_време):
пас

дефon_key_press(самостоятелно, ключ, модификатори):
ако ключ == arcade.key. НАЛЯВО:
self.player.center_x -= 10
елиф ключ == arcade.key. ДЯСНО:
self.player.center_x += 10
елиф ключ == arcade.key. НАГОРЕ:
self.player.center_y += 10
елиф ключ == arcade.key. НАДОЛУ:
self.player.center_y -= 10

дефосновен():
игра = Игра(800, 600)
arcade.run()

ако __име__ == "__основен__":
основен ()

Стартирайте този код и ще имате основна игра с движение на играча и вражески обект.

Създаване на състояния на играта

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

класИгра(аркадна. прозорец):
деф__в него__(аз, ширина, височина):
super().__init__(ширина, височина)

self.score = 0
self.health = 100

дефon_draw(себе си):
arcade.draw_text(f"Резултат: {self.score}", 10, 10, бяло)
arcade.draw_text(f"Здраве: {self.health}", 10, 30, бяло)

дефактуализация(самостоятелно, делта_време):
ако arcade.check_for_collision (self.player, self.enemy):
само.здраве -= 10

ако self.health <= 0:
self.game_over()

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

Сега здравето на играча намалява с 10 при сблъсък с врага и стойностите на резултата и здравето се показват на екрана.

Добавяне на колекционерски предмети

След това създайте колекционерски предмети, които ще увеличат резултата на играча с 10, когато бъдат събрани. Тези колекционерски предмети ще имат различни форми за визуално разнообразие. Създайте нов файл с име колекционерски предмети.py и добавете кода с актуализацията по-долу:

класИгра(аркадна. прозорец):
деф__в него__(аз, ширина, височина):
super().__init__(ширина, височина)

self.collectibles = аркада. SpriteList()

за _ в диапазон (5):
колекционерска = аркада. SpriteSolidColor(20, 40, жълто)
collectible.center_x = random.randint(0, ширина)
collectible.center_y = random.randint(0, височина)
self.collectibles.append (колекционерски)

дефon_draw(себе си):
arcade.start_render()
self.player.draw()
self.enemy.draw()
self.collectibles.draw()
arcade.draw_text(f"Резултат: {self.score}", 10, 10, бяло)
arcade.draw_text(f"Здраве: {self.health}", 10, 30, бяло)

дефактуализация(самостоятелно, делта_време):
за колекционерски в self.collections:
ако 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(себе си):
arcade.start_render()
self.player.draw()
self.enemy.draw()
self.collectibles.draw()
self.power_up.draw()
arcade.draw_text(f"Резултат: {self.score}", 10, 10, бяло)
arcade.draw_text(f"Здраве: {self.health}", 10, 30, бяло)

дефактуализация(самостоятелно, делта_време):
ако arcade.check_for_collision (self.player, self.enemy):
аконе self.shield_active:
само.здраве -= 10
ако self.health <= 0:
self.game_over()
друго:
self.enemy.remove_from_sprite_lists()

ако self.shield_active:
self.shield_timer += делта_време

ако self.shield_timer >= self.shield_duration:
self.shield_active = Невярно
self.shield_timer = 0

за колекционерски в self.collections:
ако 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()

По-долу е резултатът:

Включително допълнителни функции

Можете допълнително да подобрите системата за бонуси и колекционерски предмети, като добавите допълнителни функции. Например, можете да създадете включване на таймера, което удължава времето за игра, когато се събира. Създайте нов файл с име timer-power-up.py и добавете кода с актуализацията по-долу:

класИгра(аркадна. прозорец):
деф__в него__(аз, ширина, височина):
super().__init__(ширина, височина)
arcade.set_background_color (черно)

self.player = аркада. SpriteCircle(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)
arcade.run()

ако __име__ == "__основен__":
основен ()

Най-добри практики за бонуси и колекционерски предмети

Усилванията и колекционерските предмети играят решаваща роля в подобряването на геймплея на аркадните игри. За да сте сигурни, че тези елементи са приятни и добре интегрирани в играта, важно е да следвате някои най-добри практики:

Визуална яснота и последователност

Използвайте различни и визуално привлекателни спрайтове за бонуси и колекционерски предмети, за да ги накарате да се открояват от другите елементи на играта. Уверете се, че външният вид на бонусите и колекционерските предмети съответства на техните ефекти и цел в играта.

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

Баланс и предизвикателство

Коригирайте рядкостта и разпределението на бонусите и колекционерските предмети, за да поддържате усещането за предизвикателство и награда за играчите. Избягвайте да претоварвате играчите с твърде много бонуси или колекционерски предмети, тъй като това може да намали въздействието и вълнението от намирането им.

Внимателно балансирайте ефективността и продължителността на усилванията, за да ги предотвратите да бъдат твърде силни или недостатъчни.

Ясни индикатори и обратна връзка

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

Връзка предизвикателство-награда

Уверете се, че бонусите и колекционерските предмети осигуряват значими награди за играча, като например увеличен резултат, допълнителни способности или удължено време за игра. Съгласувайте трудността при получаване на бонуси и колекционерски предмети с предимствата, които предлагат. По-предизвикателните задачи трябва да носят по-ценни награди.

Тестване и балансиране

Тествайте обстойно играта, за да наблюдавате как играчите взаимодействат с бонуси и колекционерски предмети. Използвайте обратната връзка от играча, за да настроите фино разпределението, продължителността и ефектите на бонусите и колекционерските предмети, за да създадете балансирано и приятно изживяване.

Следвайки тези най-добри практики, можете да създадете завладяваща и добре балансирана система за включване и колекциониране, която подобрява изживяването от играта и държи играчите ангажирани във вашата аркадна игра.

Направете игрите по-забавни с бонуси и колекционерски предмети

Усилванията и колекционерските предмети добавят допълнителен слой вълнение и ангажираност към аркадните игри. Те не само предоставят на играчите нови способности и награди, но и създават интересни предизвикателства и стратегически избори.

Като включите тези функции с помощта на библиотеката Python Arcade, можете да направите игрите си по-приятни и да подобрите цялостното игрово изживяване за вашите играчи. Не забравяйте да експериментирате, итерирате и разгърнете креативността си, за да създадете уникални и завладяващи бонуси и колекционерски предмети, които са в съответствие с темата и механиката на вашата игра.