Tudi najosnovnejši sovražniki se morajo nekako premakniti, zato poiščite nekaj navdiha, kako ravnati s kodiranjem za vzorci napadov.
Eden od ključnih elementov odlične video igre je prisotnost sovražnikov. Ne glede na to, ali so zombiji, vesoljci ali drugi igralci, lahko sovražniki naredijo igro bolj zahtevno in razburljivo.
V PyGame lahko preprosto programirate različna vedenja gibanja sovražnika, na primer sledenje igralcu, naključno premikanje ali ubiranje določenih poti.
Ustvarjanje preproste igre
Začnite z ustvarjanjem preproste igre, kjer se bo igralec premikal vodoravno in navpično. Če se igralec dotakne sovražnika, bo igralec umrl.
Tukaj lahko najdete celotno kodo GitHub repo.
Začnite z uvozom potrebnega modula PyGame in njegovo inicializacijo.
uvoz pygame
pygame.init()
Nato nastavite zaslon in ustvarite predmete igralca in sovražnika z uporabo pygame. Rect() funkcijo.
# Nastavite zaslon
zaslon = pygame.display.set_mode((800, 600))# Nastavite barve
črna = (0, 0, 0)
bela = (255, 255, 255)
# Nastavite pravokotnik igralca in sovražnega predmeta
igralec = pygame. Rect(350, 500, 50, 50)
sovražnik = pygame. Rect(350, 0, 50, 50)
Po tem ustvarite igralno zanko, ki teče, dokler igralec bodisi ne trči s sovražnikom ali zapusti igro. Preverite tudi trk med igralcem in sovražnikomin narišite predmete igre na zaslon.
# Nastavite zanko igre
tek = Pravmedtem teče:
za dogodek v pygame.event.get():
če event.type == pygame. PRENEHATI:
tek = False# Napolnite zaslon z belo
screen.fill (bela)# Premakni pravokotnik igralca
tipke = pygame.key.get_pressed()če ključi [pygame. K_LEVO]:
igralec.x -= 5če ključi [pygame. K_DESNO]:
igralec.x += 5če ključi [pygame. K_UP]:
igralec.y -= 5če ključi [pygame. K_DOL]:
igralec.y += 5# Preverite trk med igralcem in sovražnikom
če player.colliderect (sovražnik):
tek = False# Narišite pravokotnik igralca in sovražnega predmeta na zaslonu
pygame.draw.rect (zaslon, črna, predvajalnik)
pygame.draw.rect (zaslon, črna, sovražnik)# Posodobite zaslon
pygame.display.update()
# Zapustite igro
pygame.quit()
Usmerite sovražnike proti igralcu
Če želite premakniti sovražnika proti igralcu, morate izračunati razdaljo med njima, kar lahko storite z uporabo Pitagorovega izreka. Nato lahko uporabite to razdaljo, da določite sovražnikovo hitrost in smer gibanja proti igralcu.
Če želite to izvesti, ustvarite spremenljivko hitrosti in jo uporabite za posodobitev sovražnikovega položaja proti igralcu.
# Izračunajte razdaljo med sovražnikom in igralcem
razdalja_x = igralec.x - sovražnik.x
razdalja_y = igralec.y - sovražnik.y
razdalja = (razdalja_x ** 2 + razdalja_y ** 2) ** 0.5# Premakni sovražnika proti igralcu
hitrost = 2
če razdalja!= 0:
sovražnik.x += hitrost * razdalja_x / razdalja
sovražnik.y += hitrost * razdalja_y / razdalja
Naključno določite gibanje sovražnika na zaslonu
Prav tako lahko povzročite, da se sovražnik naključno premika po zaslonu, da bo igra bolj zahtevna.
Če želite to narediti, z uporabo naključnega modula v Pythonu ustvarite naključno smer premikanja sovražnika. Uporabi izbira() funkcijo za izbiro naključne smeri s seznama smeri, v kateri se sovražnik lahko premika. Nato posodobite sovražnikov položaj glede na izbrano smer.
uvoz naključen
# Premaknite sovražnika naključno po zaslonu
smer = naključna.izbira(['levo', 'prav', 'gor', 'dol'])
če smer == 'levo':
sovražnik.x -= 5
elif smer == 'prav':
sovražnik.x += 5
elif smer == 'gor':
sovražnik.y -= 5
elif smer == 'dol':
sovražnik.y += 5
Sovražnikovo gibanje na podlagi bližine
V nekaterih igrah se sovražnik premakne le, ko je igralec blizu njih. To lahko dosežete tako, da izračunate razdaljo med sovražnikom in igralcem.
Če je razdalja manjša od določene vrednosti, naj se sovražnik premakne proti igralcu. To naredi igro bolj strateško in prisili igralca, da je bolj previden pri svojih gibih.
# Premakni sovražnika proti igralcu, če je igralec blizu
hitrost = 2
če razdalja < 300:
če razdalja!= 0:
sovražnik.x += hitrost * razdalja_x / razdalja
sovražnik.y += hitrost * razdalja_y / razdalja
Sovražnik se izogiba napadom igralcev
Prav tako lahko naredite, da se sovražnik izogne igralčevemu gibanju. Sovražnik se bo poskušal izogniti igralcu tako, da se bo premikal pravokotno na igralčev položaj.
Da bi to dosegli, izračunajte vektor enote proti igralcu z uporabo distance_x in distance_y, izračunanih prej. Nato izračunajte pravokotni vektor, da premaknete sovražnika pravokotno na enotski vektor. Na koncu izračunajte pikčasti produkt pravokotnega vektorja in enotskega vektorja, da določite smer gibanja sovražnika.
Če želite to izvesti, dodajte spodnji delček kode po izračunu razdalje.
hitrost = 2
če razdalja < 400:
če razdalja!= 0:
# Izračunajte enotski vektor proti igralcu
enota_vektor_x = razdalja_x / razdalja
enota_vektor_y = razdalja_y / razdalja# Izračunajte pravokotni vektor
pravokotni_vektor_x = -enotski_vektor_y
pravokotni_vektor_y = enotski_vektor_x# Izračunajte pikčasti produkt pravokotnega vektorja in
# enotski vektor
pik_produkt = pravokotni_vektor_x * enotski_vektor_x
+ pravokotni_vektor_y * enotski_vektor_y
# Premakni sovražnika pravokotno na enotski vektor
če dot_product > 0:
sovražnik.x += hitrost * pravokotni_vektor_x
sovražnik.y += hitrost * pravokotni_vektor_y
drugače:
sovražnik.x -= hitrost * pravokotni_vektor_x
sovražnik.y -= hitrost * pravokotni_vektor_y
S temi spremembami se bo sovražnik poskušal izogniti preblizu igralca. Zaradi tega je igra bolj zahtevna in zabavna.
Dodajanje dodatnih funkcij
Svoji igri lahko dodate tudi več funkcij, da postane bolj zahtevna. Dodate lahko na primer več sovražnikov, ki se naključno premikajo po zaslonu, ovire, ki se jim mora igralec med premikanjem izogniti, okrepitve, ki izboljšajo igralčeve sposobnosti, itd.
Ti lahko uporabite modul Ura, da nastavite hitrost sličic vaše igre in poskrbite, da bo tekla bolj gladko. Spodaj je izvedba:
# Dodajte več sovražnikov, ki se naključno premikajo po zaslonu
sovražniki = []za jaz v obseg (5):
sovražnik = pygame. Rect (random.randint(0, 750), naključno.randint(0, 550), 50,
50)enemies.append (sovražnik)
# Dodajte ovire, ki se jim mora igralec izogniti
ovira = pygame. Rect(200, 250, 50, 50)# Nastavite zanko igre
ura = pygame.time. ura()
tek = Pravmedtem teče:
za dogodek v pygame.event.get():
če event.type == pygame. PRENEHATI:
tek = False# Napolnite zaslon z belo
screen.fill (bela)# Premakni pravokotnik igralca
tipke = pygame.key.get_pressed()če ključi [pygame. K_LEVO]:
igralec.x -= 5
če ključi [pygame. K_DESNO]:
igralec.x += 5
če ključi [pygame. K_UP]:
igralec.y -= 5
če ključi [pygame. K_DOL]:
igralec.y += 5# Naključno premikajte sovražnike po zaslonu
za sovražnik v sovražniki:
smer = naključna.izbira(['levo', 'prav', 'gor', 'dol'])če smer == 'levo':
sovražnik.x -= 5
elif smer == 'prav':
sovražnik.x += 5
elif smer == 'gor':
sovražnik.y -= 5
elif smer == 'dol':
sovražnik.y += 5# Preverite trk med igralcem in sovražnikom
če player.colliderect (sovražnik):
tek = False# Narišite igralčev pravokotnik, sovražne predmete in oviro
# zaslon
pygame.draw.rect (zaslon, črna, predvajalnik)za sovražnik v sovražniki:
pygame.draw.rect (zaslon, črna, sovražnik)pygame.draw.rect (zaslon, črna, ovira)
# Posodobite zaslon
pygame.display.update()# Nastavite hitrost sličic v igri
clock.tick(60)
# Zapustite igro
pygame.quit()
Izboljšajte svojo igralno izkušnjo s sovražniki
Če dodate sovražnike z edinstvenimi gibi, vedenjem in sposobnostmi, lahko svoje igre naredite bolj privlačne in zahtevnejše za igralce. Igralci bodo morali oblikovati strategijo in prilagoditi svoje igranje, da bodo premagali različne vrste sovražnikov. To lahko poveča sodelovanje, izboljša vrednost ponovnega predvajanja in spodbudi igralce, da se vračajo po več.