Padariet savus Pygame projektus interesantākus, integrējot jaudas un kolekcionējamus priekšmetus.
Papildinājumiem un kolekcionējamiem priekšmetiem ir izšķiroša nozīme spēles gaitas uzlabošanā un padarot spēles saistošākas. Pievienojot šos elementus saviem Pygame projektiem, jūs varat radīt unikālus izaicinājumus, palielināt spēlētāju motivāciju un nodrošināt iespējas stratēģisku lēmumu pieņemšanai.
Par laimi Pygame nodrošina elastīgus veidus, kā salīdzinoši viegli ieviest jaudas palielinājumus un kolekcionējamus priekšmetus.
Izveidojiet vienkāršu spēli
Pirms sākat, pārliecinieties, ka jums ir pip ir instalēts jūsu sistēmā. Izmantojiet šo komandu, lai instalētu pygame bibliotēka:
pip instalēt pygame
Sāciet, izveidojot vienkāršu spēli, kurā spēlētājs var pārvietoties pa kreisi un pa labi, vienlaikus izvairoties no ienaidnieka.
Šajā rakstā izmantotais kods ir pieejams šajā GitHub repozitorijs un to varat izmantot bez maksas saskaņā ar MIT licenci.
Tas kalpos par pamatu, lai pievienotu jaudas un kolekcionējamus priekšmetus. Šeit ir koda fragmenta piemērs:
imports pygame
imports nejauši# Inicializējiet Pygame
pygame.init()# Iestatiet spēles logu
loga_platums = 800
loga_augstums = 600
logs = pygame.display.set_mode((loga_platums, loga_augstums))
pygame.display.set_caption("Mana spēle")# Iestatiet atskaņotāju
player_width = 50
spēlētāja_augstums = 50
player_x = (window_width — player_width) // 2
player_y = loga_augstums — spēlētāja_augstums — 10
player_speed = 5# Iestatiet ienaidnieku
ienaidnieka_platums = 50
ienaidnieka_augstums = 50
ienaidnieks_x = random.randint(0, loga_platums — ienaidnieka_platums)
ienaidnieks_y = 50
ienaidnieka_ātrums = 3# Spēles cilpa
skriešana = Taisnība
kamēr darbojas:
priekš notikumu iekšā pygame.event.get():
ja event.type == pygame. IZIET:
skriešana = Nepatiesi# Spēlētāja kustība
taustiņi = pygame.key.get_pressed()
ja atslēgas [pygame. K_LEFT] un player_x > 0:
player_x -= spēlētāja_ātrums
ja atslēgas [pygame. K_RIGHT] un player_x < window_width - player_width:
player_x += player_speed# Ienaidnieka kustība
ienaidnieks_y += ienaidnieka_ātrums
ja ienaidnieks_y > window_height:
ienaidnieks_x = random.randint(0, loga_platums — ienaidnieka_platums)
ienaidnieks_y = 0# Sadursmes noteikšana
ja (spēlētājs_x < ienaidnieka_x + ienaidnieka_platums) un \
(spēlētājs_x + atskaņotāja_platums > ienaidnieks_x) un \
(spēlētājs_y < ienaidnieka_y + ienaidnieka_augstums) un \
(player_y + player_height > enemy_y):
skriešana = Nepatiesi# Notīriet ekrānu
window.fill((0, 0, 0))player_pos = (spēlētājs_x, spēlētājs_y,
player_width, player_height)
ienaidnieks_pos = (ienaidnieks_x, ienaidnieks_y,
ienaidnieka_platums, ienaidnieka_augstums)# Zīmēšanas atskaņotājs
pygame.draw.rect (logs, (255, 255, 255), player_pos)# Uzzīmējiet ienaidnieku
pygame.draw.rect (logs, (255, 0, 0), ienaidnieka_poz.)# Atjauniniet displeju
pygame.display.update()
# Iziet no spēles
pygame.quit()
Zemāk ir izvade:
Izveidojiet kolekcionējamus priekšmetus
Lai izveidotu kolekcionējamus priekšmetus, pievienojiet objektu, kas pēc sadursmes ar spēlētāju pazūd un pievieno 10 punktus. Lai to izdarītu, jums tas ir jādara pārbaudiet sadursmes starp spēlētāju un kolekcionējamiem priekšmetiem. Šeit ir atjaunināta koda versija, kas ietver kolekcionējamus priekšmetus. Izveidojiet jaunu failu ar nosaukumu kolekcionējamie.py un pievienojiet kodu ar tālāk norādītajiem atjauninājumiem:
# Iestatiet kolekcionējamus priekšmetus
kolekcionējamais_platums = 30
kolekcionējamais_augstums = 30
kolekcionējams_x = random.randint(0, loga_platums — kolekcionējamais_platums)
kolekcionējams_y = 50# Iestatiet rezultātu
rezultāts = 0
fonts = pygame.font. Fonts(Nav, 36)# ...
# Sadursmes noteikšana ar kolekcionējamiem priekšmetiem
ja (spēlētājs_x < kolekcionējams_x + kolekcionējams_platums) un \
(spēlētājs_x + atskaņotāja_platums > kolekcionējams_x) un \
(spēlētājs_y < kolekcionējamais_y + kolekcionējamais_augstums) un \
(player_y + player_height > collectionible_y):
kolekcionējams_x = random.randint(0, loga_platums — kolekcionējamais_platums)
kolekcionējams_y = 50
rezultāts += 10
# ...kolekcionējams_posms = (kolekcionējams_x, kolekcionējams_y)
# Zīmējiet kolekcionējamus priekšmetus
pygame.draw.circle (logs, (0, 255, 0), kolekcionējama_pozīcija, kolekcionējama_platums)
# Uzzīmējiet rezultātu
score_text = font.render("Rezultāts:" + str (rezultāts), Taisnība, (255, 255, 255))
window.blit (score_text, (10, 10))
Zemāk ir izvade:
Izveidojiet jaudas palielinājumus
Tagad savā spēlē varat ieviest jaudas palielinājumus, izmantojot šādu loģiku. Kad spēlētājs saduras ar iedarbināmu objektu, ieslēgšanas funkcija pazūd. Ja spēlētājs saduras ar ienaidnieku, kamēr ieslēgšana ir aktīva, ienaidnieks tiks likvidēts. Izveidojiet jaunu failu ar nosaukumu powerups.py un pievienojiet kodu ar tālāk norādītajiem atjauninājumiem:
# Iestatiet ieslēgšanu
powerup_width = 40
jaudas_augstums = 40
powerup_x = random.randint(0, window_width — powerup_width)
powerup_y = 50
shield_active = Nepatiesi
shield_timer = 0# ...
# Sadursmes noteikšana ar iedarbināšanu
collision_powerup = (player_x < powerup_x + powerup_width) un \
(player_x + player_width > powerup_x) un \
(player_y < powerup_y + powerup_height) un \
(player_y + player_height > powerup_y)ja collision_powerup:
powerup_x = random.randint(0, window_width — powerup_width)
powerup_y = 50
shield_active = Taisnība
shield_timer = pygame.time.get_ticks()# ...
# Pārbaudiet vairoga taimeri
ja shield_active:
pašreizējais_laiks = pygame.time.get_ticks()
ja pašreizējais_laiks — vairoga_taimeris > 5000:
shield_active = Nepatiesi# ...
# Definējiet trīsstūra virsotnes
x1 = powerup_x + powerup_width / 2
y1 = jauda_y
x2 = jauda_x
y2 = jaudas_y + jaudas_augstums
x3 = jauda_x + jauda_platums
y3 = jaudas_y + jaudas_augstums# Uzzīmējiet trīsstūri
pygame.draw.polygon (logs, (255, 255, 0), [(x1, y1), (x2, y2), (x3, y3)])# ...
# Sadursmes noteikšana ar aktīvo vairogu
collision_shield = vairogs_aktīvs un \
(spēlētājs_x < ienaidnieka_x + ienaidnieka_platums) un \
(spēlētājs_x + atskaņotāja_platums > ienaidnieks_x) un \
(spēlētājs_y < ienaidnieka_y + ienaidnieka_augstums) un \
(spēlētājs_y + spēlētāja_augstums > ienaidnieks_y)
ja collision_shield:
ienaidnieks_x = random.randint(0, loga_platums — ienaidnieka_platums)
ienaidnieks_y = 0
Zemāk ir izvade:
Ieslēgšanās taimera iestatīšana
Lai ieslēgšanās pazustu pēc noteikta laika un atkal parādītos nejaušā vietā, varat ieviest taimerus. Izveidojiet jaunu failu ar nosaukumu timer.py un pievienojiet kodu ar tālāk norādītajiem atjauninājumiem:
# Iestatiet taimeri ieslēgšanas atjaunošanai
powerup_respawn_timer = 0# Pārbaudiet ieslēgšanas taimeri
janē shield_active:
pašreizējais_laiks = pygame.time.get_ticks()
ja pašreizējais_laiks — powerup_respawn_timer > 3000:
powerup_x = random.randint(0, window_width — powerup_width)
powerup_y = 50
powerup_respawn_timer = pygame.time.get_ticks()
Ieslēgšanas taimera vizualizācija
Lai nodrošinātu ieslēgšanas taimera vizuālu attēlojumu, varat uzzīmēt taisnstūra formas objektu, kas laika gaitā pakāpeniski iztukšojas. Izveidojiet jaunu failu ar nosaukumu bar.py un pievienojiet kodu ar tālāk norādītajiem atjauninājumiem:
# Iestatiet ieslēgšanas joslu
joslas_platums = 100
joslas_augstums = 10
josla_x = loga_platums - joslas_platums - 10
bar_y = 10# ...
# Aprēķiniet ieslēgšanas taimera progresu
ja shield_active:
pašreizējais_laiks = pygame.time.get_ticks()
pagājušais_laiks = pašreizējais_laiks — vairoga_taimeris
timer_progress = (5000 - pagājušais_laiks) / 5000
# Zīmējiet ieslēgšanas joslu
bar_rect = pygame. Taisnā (bar_x, bar_y, bar_width * timer_progress, bar_height)
pygame.draw.rect (logs, (0, 255, 255), bar_rect)
Zemāk ir izvade:
Paraugprakse, lai pievienotu spēkus un kolekcionējamus priekšmetus
Ja runa ir par jaudas palielinājumu un kolekcionējamo priekšmetu iekļaušanu savos Pygame projektos, paraugprakses ievērošana var ievērojami uzlabot kopējo spēles pieredzi. Apsveriet tālāk norādītās vadlīnijas, lai nodrošinātu līdzsvarotu un saistošu ieviešanu.
Vizuālā atšķirība
Ir svarīgi izveidot skaidras vizuālas atšķirības starp jaudas palielināšanu, kolekcionējamiem priekšmetiem un citiem spēles elementiem. Izmantojiet dažādas krāsas, formas vai simbolus, lai spēlētāji tos varētu viegli atpazīt. Šī vizuālā skaidrība palīdz spēlētājiem noteikt mērķus un noteikt to prioritātes, padarot spēli intuitīvāku un patīkamāku.
Līdzsvars un izaicinājums
Centieties saglabāt līdzsvarotu un izaicinošu spēles pieredzi. Pielāgojiet pastiprināšanas un kolekcionējamo nārsta biežumu, lai nepārslogotu spēlētājus vai nepadarītu spēli pārāk vieglu. Lai atrastu pareizo līdzsvaru, nepieciešama rūpīga pārbaude un atkārtošana.
Ņemiet vērā spēlētāju atsauksmes un precizējiet nārsta ātrumu, lai radītu aizraujošu un apmierinošu pieredzi.
Atsauksmes un atlīdzības
Sniedzot tūlītēju atgriezenisko saiti un atlīdzību, kad spēlētāji savāc spēkus vai kolekcionējamus priekšmetus, uzlabo sasnieguma sajūtu un motivāciju. Apsveriet iespēju pievienot vizuālos efektus, skaņas signālus vai animācijas, lai norādītu uz veiksmīgu iegādi.
Spēlētāju apbalvošana ar punktiem, papildu dzīvībām vai īpašu spēju atgūšana rada papildu aizrautību un mudina spēlētājus aktīvi meklēt šos elementus.
Taimeri un ilgums
Ieviesiet ieslēgšanas taimerus un ilgumus, lai saglabātu godīgumu un stratēģisku lēmumu pieņemšanu. Jaudas palielināšanai vajadzētu būt ierobežotam ilgumam, lai nepieļautu, ka spēlētāji ilgstoši kļūst pārāk spēcīgi.
Izšķiroša nozīme ir ilguma līdzsvarošanai, jo pārāk īss ilgums var šķist nenozīmīgs, savukārt pārāk garš var izjaukt spēli. Izmēģiniet dažādus ilgumus, lai atrastu piemērotāko vietu katrai ieslēgšanai.
Pārbaudi un atkārto
Playtesting ir būtisks solis izstrādes procesā. Rūpīgi pārbaudiet savu spēli ar dažādām konfigurācijām un sarežģītības līmeņiem, lai nodrošinātu, ka jaudas palielinājumi un kolekcionējamie priekšmeti ir atbilstoši līdzsvaroti un integrēti spēlē.
Pievērsiet uzmanību spēlētāju atsauksmēm un atkārtojiet, pamatojoties uz viņu pieredzi. Šī iteratīvā pieeja ļauj precīzi noregulēt sistēmu, radot patīkamu un valdzinošu spēles pieredzi.
Padariet spēles saistošākas ar kolekcionējamiem priekšmetiem
Pievienojot saviem Pygame projektiem jaudas un kolekcionējamus priekšmetus, var ievērojami uzlabot kopējo spēles pieredzi. Šie elementi ievieš stratēģiskas izvēles, apbalvo spēlētājus un palielina motivāciju. Kolekcionējamos priekšmetus var izmantot, lai atbloķētu jaunas funkcijas, līmeņus vai spējas, savukārt pastiprinājumi nodrošina īslaicīgas priekšrocības un unikālu spēles mehāniku.
Rūpīgi izstrādājot un ieviešot šīs funkcijas, varat izveidot spēles, kas ir aizraujošākas, izaicinošākas un spēlētājiem patīkamākas.