Naredite svoje projekte Pygame bolj zanimive z integracijo moči in zbirateljskih predmetov.

Ojačevalci in zbirateljski predmeti igrajo ključno vlogo pri izboljšanju igranja in ustvarjanju zanimivejših iger. Z dodajanjem teh elementov v vaše projekte Pygame lahko ustvarite edinstvene izzive, povečate motivacijo igralcev in zagotovite priložnosti za strateško odločanje.

Na srečo Pygame ponuja prilagodljive načine za relativno enostavno izvajanje ojačitev in zbirateljskih predmetov.

Ustvari preprosto igro

Preden začnete, se prepričajte, da imate pip nameščen v vašem sistemu. S tem ukazom namestite pygame knjižnica:

pip namestite pygame

Začnite z nastavitvijo preproste igre, kjer se lahko igralec premika levo in desno, medtem ko se izogiba sovražniku.

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

To bo služilo kot osnova za dodajanje moči in zbirateljskih predmetov. Tukaj je primer izrezka kode:

uvoz pygame
uvoz naključen

# Inicializirajte Pygame
pygame.init()

instagram viewer

# Nastavite okno igre
širina_okna = 800
višina_okna = 600
okno = pygame.display.set_mode((širina_okna, višina_okna))
pygame.display.set_caption("Moja igra")

# Nastavite predvajalnik
širina_igralca = 50
višina_igralca = 50
igralec_x = (širina_okna - širina_igralca) // 2
igralec_y = višina_okna - višina_igralca - 10
hitrost_igralca = 5

# Nastavite sovražnika
širina_sovražnika = 50
višina_sovražnika = 50
enemy_x = naključno.randint(0, širina_okna - širina_sovražnika)
sovražnik_y = 50
sovražnik_hitrost = 3

# Igralna zanka
tek = Prav
medtem teče:
za dogodek v pygame.event.get():
če event.type == pygame. PRENEHATI:
tek = False

# Gibanje igralca
tipke = pygame.key.get_pressed()
če ključi [pygame. K_LEFT] in igralec_x > 0:
igralec_x -= hitrost_igralca
če ključi [pygame. K_DESNO] in igralec_x < širina_okna - širina_igralca:
igralec_x += hitrost_igralca

# Gibanje sovražnika
sovražnik_y += sovražnikova hitrost
če enemy_y > window_height:
enemy_x = naključno.randint(0, širina_okna - širina_sovražnika)
sovražnik_y = 0

# Zaznavanje trčenja
če (player_x < enemy_x + enemy_width) in \
(player_x + player_width > enemy_x) in \
(player_y < enemy_y + enemy_height) in \
(player_y + player_height > enemy_y):
tek = False

# Počistite zaslon
window.fill((0, 0, 0))

player_pos = (player_x, player_y,
širina_igralca, višina_igralca)
sovražnik_pos = (sovražnik_x, sovražnik_y,
širina_sovražnika, višina_sovražnika)

# Igralec žrebanja
pygame.draw.rect (okno, (255, 255, 255), player_pos)

# Nariši sovražnika
pygame.draw.rect (okno, (255, 0, 0), enemy_pos)

# Posodobite zaslon
pygame.display.update()

# Zapustite igro
pygame.quit()

Spodaj je rezultat:

Ustvarite zbirateljske predmete

Če želite ustvariti zbirateljske predmete, dodajte predmet, ki ob trku z igralcem izgine in rezultatu doda 10 točk. Za to morate preverite kolizije med igralcem in zbirateljskimi predmeti. Tukaj je posodobljena različica kode, ki vključuje zbirateljske predmete. Ustvari novo datoteko z imenom zbirateljstvo.py in dodajte kodo s spodnjimi posodobitvami:

# Nastavite zbirateljstvo
zbirateljska_širina = 30
zbirateljska_višina = 30
zbirateljski_x = naključno.randint(0, window_width - zbirateljska_width)
zbirateljsko_y = 50

# Nastavite rezultat
rezultat = 0
pisava = pygame.font. Pisava (Noben, 36)

# ...

# Zaznavanje trkov z zbirateljskimi predmeti
če (player_x < collectible_x + collectible_width) in \
(player_x + player_width > collectible_x) in \
(player_y < collectible_y + collectible_height) in \
(player_y + player_height > collectible_y):
zbirateljski_x = naključno.randint(0, window_width - zbirateljska_width)
zbirateljsko_y = 50
ocena += 10
# ...

collectible_pos = (collectible_x, collectible_y)
# Nariši zbirateljsko
pygame.draw.circle (okno, (0, 255, 0), collectible_pos, collectible_width)

# Neodločen rezultat
score_text = font.render("Ocena:" + str (rezultat), Prav, (255, 255, 255))
window.blit (score_text, (10, 10))

Spodaj je rezultat:

Ustvarite Power-ups

Zdaj lahko v svojo igro uvedete okrepitve z naslednjo logiko. Ko igralec trči s predmetom za vklop, bo ta izginil. Če igralec trči s sovražnikom, medtem ko je napajanje aktivno, bo sovražnik odstranjen. Ustvari novo datoteko z imenom powerups.py in dodajte kodo s spodnjimi posodobitvami:

# Nastavite vklop
powerup_width = 40
powerup_height = 40
powerup_x = naključno.randint(0, window_width - powerup_width)
powerup_y = 50
ščit_aktiven = False
shield_timer = 0

# ...

# Zaznavanje trčenja z vklopom
collision_powerup = (player_x < powerup_x + powerup_width) in \
(player_x + player_width > powerup_x) in \
(player_y < powerup_y + powerup_height) in \
(player_y + player_height > powerup_y)

če collision_powerup:
powerup_x = naključno.randint(0, window_width - powerup_width)
powerup_y = 50
ščit_aktiven = Prav
shield_timer = pygame.time.get_ticks()

# ...

# Preverite časovnik ščita
če ščit_aktiven:
trenutni_čas = pygame.time.get_ticks()
če trenutni_čas - časovnik_ščita > 5000:
ščit_aktiven = False

# ...

# Določite oglišča trikotnika
x1 = powerup_x + powerup_width / 2
y1 = moč_y
x2 = povečanje_x
y2 = moč_y + moč_višina
x3 = powerup_x + powerup_width
y3 = powerup_y + powerup_height

# Narišite trikotnik
pygame.draw.polygon (okno, (255, 255, 0), [(x1, y1), (x2, y2), (x3, y3)])

# ...

# Zaznavanje trka z aktivnim ščitom
ščit_pri_trku = ščit_aktiven in \
(player_x < enemy_x + enemy_width) in \
(player_x + player_width > enemy_x) in \
(player_y < enemy_y + enemy_height) in \
(player_y + player_height > enemy_y)

če collision_shield:
enemy_x = naključno.randint(0, širina_okna - širina_sovražnika)
sovražnik_y = 0

Spodaj je rezultat:

Nastavitev časovnika za vklope

Če želite, da vklop po določenem času izgine in se ponovno pojavi na naključni lokaciji, lahko uvedete časovnike. Ustvari novo datoteko z imenom timer.py in dodajte kodo s spodnjimi posodobitvami:

# Nastavite časovnik za ponovni vklop
powerup_respawn_timer = 0

# Preverite časovnik za vklop
čene ščit_aktiven:
trenutni_čas = pygame.time.get_ticks()
če trenutni_čas - powerup_respawn_timer > 3000:
powerup_x = naključno.randint(0, window_width - powerup_width)
powerup_y = 50
powerup_respawn_timer = pygame.time.get_ticks()

Vizualizacija časovnika za vklop

Za vizualno predstavitev časovnika za vklop lahko narišete pravokoten predmet, ki se sčasoma postopoma izprazni. Ustvari novo datoteko z imenom bar.py in dodajte kodo s spodnjimi posodobitvami:

# Nastavite vrstico za vklop
bar_width = 100
višina_bara = 10
bar_x = širina_okna - širina_bara - 10
bar_y = 10

# ...

# Izračunajte napredek časovnika vklopa
če ščit_aktiven:
trenutni_čas = pygame.time.get_ticks()
pretečeni_čas = trenutni_čas - časovnik_ščita
timer_progress = (5000 - pretečen čas) / 5000
# Narišite vrstico za vklop
bar_rect = pygame. Rect (bar_x, bar_y, bar_width * timer_progress, bar_height)
pygame.draw.rect (okno, (0, 255, 255), bar_rect)

Spodaj je rezultat:

Najboljše prakse za dodajanje bonusov in zbirateljskih predmetov

Ko gre za vključevanje okrepitev in zbirateljskih predmetov v vaše projekte Pygame, lahko upoštevanje najboljših praks močno izboljša celotno izkušnjo igranja. Upoštevajte naslednje smernice, da zagotovite uravnoteženo in privlačno izvedbo:

Vizualna razlika

Bistveno je ustvariti jasne vizualne razlike med okrepitvami, zbirateljskimi predmeti in drugimi elementi igre. Uporabite različne barve, oblike ali simbole, da bodo igralci zlahka prepoznavni. Ta vizualna jasnost pomaga igralcem pri prepoznavanju in razvrščanju ciljev, zaradi česar je igranje bolj intuitivno in prijetno.

Ravnovesje in izziv

Prizadevajte si ohraniti uravnoteženo in zahtevno izkušnjo igranja. Prilagodite pogostost ojačitev in pojavljanja zbirateljskih predmetov, da preprečite preobremenitev igralcev ali naredite igro preveč enostavno. Iskanje pravega ravnovesja zahteva skrbno testiranje in ponavljanje.

Upoštevajte povratne informacije igralcev in natančno prilagodite stopnje pojavljanja, da ustvarite privlačno in zadovoljivo izkušnjo.

Povratne informacije in nagrade

Zagotavljanje takojšnjih povratnih informacij in nagrad, ko igralci zbirajo okrepitve ali zbirateljske predmete, povečajo občutek dosežka in motivacije. Razmislite o dodajanju vizualnih učinkov, zvočnih namigov ali animacij, da nakažete uspešne pridobitve.

Nagrajevanje igralcev s točkami, dodatnimi življenji ali odklepanjem posebnih sposobnosti dodaja dodatno razburjenje in spodbuja igralce, da aktivno iščejo te elemente.

Časovniki in trajanje

Izvedite časovnike in trajanja za okrepitve, da ohranite pravičnost in strateško odločanje. Ojačanja morajo imeti omejeno trajanje, da preprečijo, da bi bili igralci dlje časa premočeni.

Uravnoteženje trajanja je ključnega pomena, saj lahko prekratko trajanje deluje premalo, predolgo pa lahko poruši igro. Preizkusite različna trajanja, da najdete najboljšo točko za vsako okrepitev.

Testiraj in ponavljaj

Testiranje predvajanja je pomemben korak v razvojnem procesu. Temeljito preizkusite svojo igro z različnimi konfiguracijami in težavnostnimi stopnjami, da zagotovite, da so okrepitve in zbirateljski predmeti ustrezno uravnoteženi in integrirani v igranje.

Bodite pozorni na povratne informacije igralcev in ponovite na podlagi njihovih izkušenj. Ta ponavljajoči se pristop vam omogoča natančno nastavitev sistema in ustvarja prijetno in privlačno izkušnjo igranja.

Naj bodo igre privlačnejše z zbirateljskimi predmeti

Dodajanje ojačitev in zbirateljskih predmetov vašim projektom Pygame lahko znatno izboljša celotno izkušnjo igranja. Ti elementi uvajajo strateške odločitve, nagrajujejo igralce in povečujejo motivacijo. Zbirateljske predmete je mogoče uporabiti za odklepanje novih funkcij, ravni ali sposobnosti, medtem ko okrepitve zagotavljajo začasne prednosti in edinstveno mehaniko igranja.

S premišljenim načrtovanjem in implementacijo teh funkcij lahko ustvarite igre, ki so bolj poglobljene, zahtevne in prijetne za igralce.