Zaradi naključnih premikajočih se predmetov so igre bolj razburljive in zahtevnejše. Naučite se, kako ga vključiti v svoje projekte Pygame.

Pygame, priljubljena knjižnica Python za razvoj iger, vam omogoča enostavno ustvarjanje razburljivih in interaktivnih iger. Eden od načinov za izboljšanje vaših stvaritev Pygame je dodajanje naključnih premikajočih se predmetov. Ti predmeti so lahko ovire, sovražniki, okrepitve ali karkoli, kar vašemu svetu igre doda dinamiko.

Ustvari preprosto igro

Začnite tako, da nastavite osnovno okno Pygame in dodate objekt igralca skupaj z nekaterimi platformami. Osnovno gibanje igralca lahko izvedete tudi s puščičnimi tipkami oz uporabo vnosov na dotik.

Koda, uporabljena v tem članku, je na voljo tukaj Repozitorij GitHub in je brezplačen za uporabo pod licenco MIT.

Ustvari novo datoteko z imenom simple-game.py in dodajte kodo za svojo osnovno igro.

Dodajte več premikajočih se predmetov

Zdaj, ko imate preprosto igro s predmetom igralca in platformami, v igro dodajte več naključno premikajočih se predmetov. Ti predmeti se bodo premikali vodoravno po zaslonu z različnimi hitrostmi.

instagram viewer

object_width, object_height = 30, 30
object_speed_range = (2, 7)
objects = []

defcreate_random_object():
return {
'x': random.randint(0, screen_width - object_width),
'y': random.randint(0, screen_height - object_height),
'speed': random.randint(*object_speed_range)
}

for _ in range(5):
objects.append(create_random_object())

defdraw_object(obj):
obj_dim = (obj['x'], obj['y'], object_width, object_height)
pygame.draw.rect(screen, WHITE, obj_dim)

# Game loop
while running:
screen.fill((0, 0, 0))

#... (previous code)

for obj in objects:
obj['x'] += obj['speed']
if obj['x'] > screen_width:
obj['x'] = -object_width

draw_object(obj)

pygame.display.update()
clock.tick(60)

pygame.quit()

Spodaj je rezultat:

Izvedite algoritem naključnega gibanja

Trenutno se vaši naključno premikajoči se predmeti premikajo samo v ravni vodoravni črti. Da bo njihovo gibanje bolj nepredvidljivo, lahko dodate algoritem naključnega gibanja.

# Random Movement Algorithm
defupdate_random_movement(obj):
# Change the direction randomly
if random.random() < 0.01:
obj['speed'] = -obj['speed']

# Game loop
while running:
#... (previous code)

for obj in objects:
obj['x'] += obj['speed']
if obj['x'] > screen_width:
obj['x'] = -object_width

update_random_movement(obj)
draw_object(obj)

pygame.display.update()
clock.tick(60)

pygame.quit()

Naj se predmeti premikajo proti igralcu

Če želite igri dodati več zapletenosti, lahko vnesete nekaj predmetov, ki se premikajo proti igralcu. To lahko dosežete tako, da izračunate kot med predmetom in igralcem ter ustrezno prilagodite položaj predmeta.

import math

# Objects Moving Towards Player
defmove_towards_player(obj):
player_center_x = player_x + player_width // 2
player_center_y = player_y + player_height // 2
object_center_x = obj['x'] + object_width // 2
object_center_y = obj['y'] + object_height // 2

angle1 = player_center_y - object_center_y
angle2 = player_center_x - object_center_x

angle = math.atan2(angle1, angle2)
obj['x'] += obj['speed'] * math.cos(angle)
obj['y'] += obj['speed'] * math.sin(angle)

# Game loop
while running:
#... (previous code)

for obj in objects:
obj['x'] += obj['speed']
if obj['x'] > screen_width:
obj['x'] = -object_width

move_towards_player(obj)
draw_object(obj)

pygame.display.update()
clock.tick(60)

pygame.quit()

Naj se predmeti premikajo le, ko igralec vstopi v okolico

Namesto da bi se vsi predmeti premikali od začetka, lahko dovolite, da se predmeti začnejo premikati šele, ko igralec vstopi v njihovo okolico.

# Objects Start to Move When Player Enters Surroundings
surrounding_distance = 150

defshould_start_moving(obj):
surrounded1 = abs(obj['x'] - player_x) < surrounding_distance
surrounded2 = abs(obj['y'] - player_y) < surrounding_distance
return surrounded1 or surrounded2

# Game loop
while running:
#... (previous code)

for obj in objects:
if should_start_moving(obj):
obj['x'] += obj['speed']
if obj['x'] > screen_width:
obj['x'] = -object_width

update_random_movement(obj)
move_towards_player(obj)

draw_object(obj)

pygame.display.update()
clock.tick(60)

pygame.quit()

Zaznavanje trka in interakcija

Da bo igra še bolj privlačna, lahko dodajte zaznavanje trkov med igralcem in premikajočimi se predmeti. Na primer, lahko odstranite predmet z zaslona, ​​ko igralec trči vanj.

# Collision Detection and Interaction
defis_collision(obj):

condition1 = player_x + player_width > obj['x']
condition2 = player_x < obj['x'] + object_width
condition3 = player_y + player_height > obj['y']
condition4 = player_y < obj['y'] + object_height
return ( condition1 and condition2 and condition3 and condition4)

# Game loop
while running:
#... (previous code)

for obj in objects:
if should_start_moving(obj):
obj['x'] += obj['speed']
if obj['x'] > screen_width:
obj['x'] = -object_width

update_random_movement(obj)
move_towards_player(obj)

if is_collision(obj):
objects.remove(obj)

draw_object(obj)

pygame.display.update()
clock.tick(60)

pygame.quit()

Vključno z dodatnimi funkcijami

Dodajanje naključnih premikajočih se predmetov lahko služi kot osnova za izvajanje različnih vznemirljivih funkcij v vašem Pygame. Tu je nekaj dodatnih idej, s katerimi lahko svojo igro dvignete na višjo raven:

Točkovanje in napredovanje

Predmetom dodelite različne ocene glede na njihovo težavnostno stopnjo ali redkost. Ustvarite lahko in prikazati sistem točkovanja ki nagrajuje igralce za uspešno krmarjenje skozi premikajoče se predmete ali zbiranje posebnih predmetov.

Implementirajte sledilnik napredka, ki povečuje težavnost igre, ko igralci dosegajo višje rezultate, kar jih ohranja angažirane in motivirane za izboljšave.

Okrepitve in bonusi

Ustvarite posebne predmete, ki dajejo igralcu začasne prednosti, ko jih zberete. Te okrepitve lahko vključujejo povečano hitrost, nepremagljivost ali celo zmožnost začasne zamrznitve ali uničenja drugih predmetov.

Bodite kreativni z učinki teh okrepitev, da igranju dodate strateško globino.

Sovražnikov AI in vedenje

Oblikujte bolj izpopolnjene vzorce gibanja za sovražne predmete, da se jim bodo igralci bolj izognili. Izvedite preproste algoritme AI, da bodo sovražniki inteligentno zasledovali igralca ali se premikali v usklajenih vzorcih.

Različno vedenje sovražnikov bo držalo igralce na trnih in preprečilo, da bi igra postala monotona.

Zbirateljski predmeti in nagrade

Razpršite zbirateljske predmete po svetu igre. To so lahko kovanci, dragulji ali kateri koli drugi tematski predmeti. Ko igralec zbere določeno število teh predmetov, lahko odklene nove ravni, like ali celo skrivne funkcije v igri.

Najboljše prakse za dodajanje naključno premikajočih se predmetov

Pri vključevanju naključno premikajočih se predmetov v vaš Pygame vam bo sledenje tem najboljšim praksam pomagalo ustvariti dobro uravnoteženo in izpopolnjeno igralno izkušnjo:

Težave z uravnoteženjem

Hitrost in vzorci gibanja naključno premikajočih se predmetov morajo biti skrbno uravnoteženi, da zagotovijo pošten izziv. Izogibajte se, da bi se predmeti premikali prehitro ali neenakomerno, saj lahko to frustrira igralce in se igra zdi nepoštena.

Po drugi strani pa lahko preveč počasi premikajoči se predmeti naredijo igro preveč enostavno in manj privlačno.

Optimizacija za uspešnost

Če vaša igra vključuje veliko število naključnih premikajočih se predmetov ali zapletenih algoritmov gibanja, razmislite o optimizaciji kode za izboljšanje zmogljivosti. Uporabite učinkovite podatkovne strukture in algoritme za obvladovanje trkov in izračunov gibanja.

Zmanjšajte nepotrebne izračune, da zagotovite gladko in odzivno igranje, zlasti na starejših ali manj zmogljivih napravah.

Testiranje in prilagajanje

Temeljito preizkusite svojo igro z različnimi scenariji, da zagotovite pravilno interakcijo naključnih premikajočih se predmetov z drugimi elementi igre. Preizkusite trke, interakcije z igralcem in vsa posebna gibalna vedenja.

Prilagodite hitrost, obnašanje in vzorce predmetov na podlagi povratnih informacij o testiranju igranja, da dosežete optimalno izkušnjo igranja.

Naključnost z nadzorom

Čeprav se za te premikajoče se predmete uporablja izraz "naključno", popolna naključnost morda ni vedno zaželena. Razmislite o vključitvi nadzorovane naključnosti, kjer so določeni gibi ali vzorci opredeljeni znotraj obsega ali nabora možnosti.

Nadzorovana naključnost zagotavlja, da igra ostaja zahtevna in prijetna, ne da bi postala preveč kaotična.

Naredite igre bolj privlačne z naključnimi premikajočimi se predmeti

Naključno premikajoči se predmeti vaši igri dodajo element presenečenja in nepredvidljivosti, zaradi česar je bolj dinamična in privlačna. Igralce držijo na trnih, zahtevajo hitre reflekse in strateško razmišljanje. Poleg tega raznolikost gibov in interakcij s temi predmeti zagotavlja, da nobena igralna izkušnja ni enaka.