Ne glede na to, ali trk omogoči vklop ali vodi do konca igre, ga morate znati zaznati. Tukaj je opisano, kako to storite s Pythonovo arkadno knjižnico.

Trki so temeljni vidik igranja v mnogih žanrih video iger. Igram dodajo plast izziva in vznemirjenja, saj od igralcev zahtevajo, da premagujejo ovire, se izogibajo sovražnikom in zbirajo nagrade.

Implementacija zaznavanja in obravnave trkov v vaših igrah je ključnega pomena za ustvarjanje realistične in dinamične mehanike igranja, ki igralce pritegne in zabava. Z arkadno knjižnico lahko enostavno zaznate trke z uporabo njenih vgrajenih funkcij.

Ustvarjanje preproste igre

Preden začnete, se prepričajte, da imate pip nameščen v vaši napravi. Za namestitev arkadne knjižnice uporabite ta ukaz:

pip install arkada

Po tem ustvarite igro, v kateri se lahko igralec premika levo in desno, da se izogne ​​trčenju s sovražnim pravokotnikom. Za sprite lahko uporabite vgrajeno funkcijo risanja.

Lahko najdete popolno kodo v tem repo GitHub.

Tukaj je koda za igro:

uvoz arkada

SCREEN_WIDTH = 640
SCREEN_HEIGHT = 480
HITROST_GIBANJA = 5

razredMyGame(arkadne. okno):
def__v__(jaz, širina, višina):
super().__init__(širina, višina, "Moja igra")
arcade.set_background_color (arcade.color. BELA)
self.player = arkada. SpriteSolidColor(50, 50, arcade.color. MODRA)
self.player.center_x = SCREEN_WIDTH // 3
self.player.center_y = 50
self.nemy = arkada. SpriteSolidColor(50, 50, arcade.color. RDEČA)
self.enemy.center_x = SCREEN_WIDTH // 2
self.encer.center_y = 50

defon_draw(sebe):
arcade.start_render()
self.player.draw()
self.enemy.draw()

defna_pritisk_tipke(jaz, ključ, modifikatorji):
če ključ == arcade.key. LEVO:
self.player.center_x -= HITROST_GIBANJA
elif ključ == arcade.key. PRAV:
self.player.center_x += MOVEMENT_SPEED

defnadgradnja(sam, delta_time):
če arcade.check_for_collision (self.player, self.enemy):
natisni("Konec igre")

defglavni():
igra = MyGame (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()

če __ime__ == "__glavni__":
glavni ()

Funkcije Arcade za zaznavanje trkov

Knjižnica Arcade ponuja preprost način za odkrivanje trkov med spriti. The preveri_za_trk funkcija vzame dva sprita kot argumenta in vrne logično vrednost, ki označuje, ali sta sprite trčila. To funkcijo lahko uporabite za zaznavanje trkov med igralcem in sovražnikovimi spriti v vaši igri.

Lahko spremenite nadgradnja metoda za preverjanje trkov med igralcem in sovražnimi spriti. Če knjižnica zazna kolizijo, lahko natisnete Konec igre na konzolo.

Tukaj je posodobljena koda:

defnadgradnja(sam, delta_time):
če arcade.check_for_collision (self.player, self.enemy):
natisni("Konec igre")
drugače:
self.player.update()

S to spremembo bo vaša igra zaznala trke in natisnila Konec igre besedilo, če igralec trči s sovražnikom.

Dodajanje več funkcij

Da bo vaša igra bolj privlačna, lahko dodate dodatne funkcije, kot so točkovanje, okrepitve in več sovražnikov.

Ustvarite lahko na primer seznam sovražnikov in posodobite igro, da ustvari nove sovražnike na naključnih položajih po vsakem trčenju. Ti lahko premaknite predvajalnik levo in desno, da se izognete sovražniku in dosežete točko. Tukaj je primer, kako lahko implementirate te funkcije:

uvoz naključen
razredMyGame(arkadne. okno):
def__v__(jaz, širina, višina):
super().__init__(širina, višina, "Moja igra")
arcade.set_background_color (arcade.color. BELA)
self.player = arkada. SpriteSolidColor(50, 50, arcade.color. MODRA)
self.player.center_x = SCREEN_WIDTH // 2
self.player.center_y = 50
self.enemies = arkada. SpriteList()
self.score = 0
za jaz v obseg (3):
sovražnik = arkada. SpriteSolidColor(50, 50, arcade.color. RDEČA)
enemy.center_x = random.randint(0, SCREEN_WIDTH)
enemy.center_y = random.randint (SCREEN_HEIGHT // 2, SCREEN_HEIGHT)
self.enemies.append (sovražnik)

defon_draw(sebe):
arcade.start_render()
self.player.draw()
self.enemies.draw()
arcade.draw_text(f"Ocena: {self.score}", 10, SCREEN_HEIGHT - 30, arcade.color. ČRNA, 16)

defnadgradnja(sam, delta_time):
če arcade.check_for_collision_with_list (self.player, self.enemes):
natisni("Konec igre")
arcade.close_window()
drugače:
self.player.update()
za sovražnik v self.evnemies:
enemy.center_y -= MOVEMENT_SPEED / 2
če sovražnik.center_y < 0:
enemy.center_x = random.randint(0, SCREEN_WIDTH)
enemy.center_y = random.randint (SCREEN_HEIGHT // 2, SCREEN_HEIGHT)
self.score += 1

S temi spremembami ima vaša igra zdaj več sovražnikov, ki se pojavijo na naključnih položajih in se premikajo navzdol. Igralec si prisluži točko za vsakega uspešno izognjenega sovražnika in igra se konča, če igralec trči s katerim koli sovražnikom.

Izboljšajte sodelovanje uporabnikov s trki

Če svojim igram dodate funkcije za zaznavanje trkov in upravljanje, lahko za igralce ustvarite bolj poglobljene in zahtevne izkušnje igranja. Od preprostih iger izogibanja in zbiranja do bolj zapletenih platformnih iger in streljačin igrajo trki ključno vlogo pri ustvarjanju privlačne in zadovoljive mehanike igranja.

Torej, če želite ustvariti bolj privlačne in poglobljene igre, zaradi katerih se igralci vračajo po več, razmislite o vključitvi funkcij za zaznavanje trkov v svojo mehaniko igranja.