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

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

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

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

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

pip инсталирайте аркада

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

instagram viewer

Можете да намерите пълния код в това хранилище на GitHub.

Ето кода на играта:

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

SCREEN_WIDTH = 640
SCREEN_HEIGHT = 480
СКОРОСТ НА ДВИЖЕНИЕ = 5

класMyGame(аркадна. прозорец):
деф__в него__(аз, ширина, височина):
super().__init__(ширина, височина, "Моята игра")
arcade.set_background_color (arcade.color. БЯЛО)
self.player = аркада. SpriteSolidColor(50, 50, arcade.color. СИН)
self.player.center_x = SCREEN_WIDTH // 3
self.player.center_y = 50
self.nemy = аркада. SpriteSolidColor(50, 50, arcade.color. ЧЕРВЕН)
self.enemy.center_x = SCREEN_WIDTH // 2
self.enemy.center_y = 50

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

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

дефактуализация(самостоятелно, делта_време):
ако arcade.check_for_collision (self.player, self.enemy):
печат ("Играта приключи")

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

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

Функциите на Arcade за откриване на сблъсък

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

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

Ето актуализирания код:

дефактуализация(самостоятелно, делта_време):
ако arcade.check_for_collision (self.player, self.enemy):
печат ("Играта приключи")
друго:
self.player.update()

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

Добавяне на още функции

За да направите играта си по-ангажираща, можете да добавите допълнителни функции като точкуване, бонуси и множество врагове.

Например, можете да създадете списък с врагове и да актуализирате играта, за да създавате нови врагове на произволни позиции след всеки сблъсък. Можеш преместете играча наляво и надясно, за да избегнете врага и да спечелите точка. Ето пример за това как можете да внедрите тези функции:

импортиране случаен
класMyGame(аркадна. прозорец):
деф__в него__(аз, ширина, височина):
super().__init__(ширина, височина, "Моята игра")
arcade.set_background_color (arcade.color. БЯЛО)
self.player = аркада. SpriteSolidColor(50, 50, arcade.color. СИН)
self.player.center_x = SCREEN_WIDTH // 2
self.player.center_y = 50
self.nemies = аркада. SpriteList()
self.score = 0
за аз в диапазон (3):
враг = аркада. SpriteSolidColor(50, 50, arcade.color. ЧЕРВЕН)
enemy.center_x = random.randint(0, SCREEN_WIDTH)
enemy.center_y = random.randint (SCREEN_HEIGHT // 2, SCREEN_HEIGHT)
self.enemies.append (враг)

дефon_draw(себе си):
arcade.start_render()
self.player.draw()
self.enemies.draw()
arcade.draw_text(f"Резултат: {self.score}", 10, SCREEN_HEIGHT - 30, arcade.color. ЧЕРЕН, 16)

дефактуализация(самостоятелно, делта_време):
ако arcade.check_for_collision_with_list (self.player, self.enemies):
печат ("Играта приключи")
arcade.close_window()
друго:
self.player.update()
за враг в себе.врагове:
enemy.center_y -= СКОРОСТ НА ДВИЖЕНИЕ / 2
ако враг.center_y < 0:
enemy.center_x = random.randint(0, SCREEN_WIDTH)
enemy.center_y = random.randint (SCREEN_HEIGHT // 2, SCREEN_HEIGHT)
самостоятелен резултат += 1

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

Подобрете ангажираността на потребителите със сблъсъци

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

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