Šioje pamokoje sužinosite, kaip rodyti ir atnaujinti žaidimų balus Pygame – populiarioje žaidimų kūrimo Python bibliotekoje. Pabaigoje galėsite sukurti paprastą džemperio žaidimą ir rodyti žaidėjo rezultatą ekrane jam progresuojant. Žaidimas seka klaviatūros įvestį, kad galėtumėte perkelti žaidėją į kairę ir dešinę naudodami rodyklių klavišus.
Paprasto žaidimo kūrimas
Kad galėtumėte rodyti ir atnaujinti „Pygame“ rezultatus, pirmiausia turėsite sukurti žaidimą, su kuriuo galėtumėte dirbti. Šioje pamokoje sukursite paprastą žaidimą, kuriame žaidėjas gali judėti į kairę arba į dešinę. Tačiau prieš tai turėtumėte pip įdiegtas jūsų įrenginyje. Įdiegę pip, paleiskite toliau pateiktą komandą, kad įdiegtumėte pygame modulį:
pip diegti pygame
Norėdami pradėti, importuokite reikiamus modulius ir nustatykite pagrindinę žaidimo struktūrą:
importuoti pygame, sys
pygame.init()# Nustatykite langą
ekranas = pygame.display.set_mode((750, 450))# Nustatykite žaidimo laikrodį
laikrodis = pygame.time. Laikrodis()# Nustatykite žaidėjo charakterį
žaidėjas = pygame. Rect(100, 200, 50, 50)# Nustatykite kliūtį
kliūtis = pygame. Rect(200, 200, 50, 50)# Nustatykite žaidimo kilpą
kolTiesa:
# Tvarkykite įvykius
dėl įvykis in pygame.event.get():
jeigu event.type == pygame. UŽDARYTI:
pygame.quit()
sys.exit()jeigu event.type == pygame. KEYDOWN:
jeigu event.key == pygame. K_LEFT:
grotuvas.x -= 10
elifas event.key == pygame. K_RIGHT:
grotuvas.x += 10
# Atnaujinkite žaidimo būseną
# Nupieškite žaidimą
screen.fill((0, 0, 0))
pygame.draw.rect (ekranas, (255, 0, 0), žaidėjas)
pygame.draw.rect (ekranas, (0, 255, 0), kliūtis)
# Atnaujinkite ekraną
pygame.display.flip()
# Apribokite kadrų dažnį
laikrodis.tick(60)
Su šiuo skeleto kodu galima žaisti pagrindinį žaidimą. Paspauskite kairėn arba dešinėn, kad perkeltumėte žaidėjo personažą, pavaizduotą raudonu kvadratu.
Žaidimo balo rodymas ir atnaujinimas
Dabar, kai nustatėte pagrindinį žaidimą, pridėkite balų sistemą ir ekrane parodykite rezultatą.
Pygame nustatymas teksto atvaizdavimui
Norėdami rodyti tekstą Pygame, pirmiausia turime importuoti reikiamus modulius ir inicijuoti šrifto modulį. Norėdami tai padaryti, naudokite šį kodą scenarijaus viršuje:
importuoti pygame
importuoti sys
importuoti os
pygame.init()
pygame.font.init()
Modulis pygame.font leidžia naudoti Pygame teksto atvaizdavimo galimybes, o funkcija pygame.init() inicijuoja šrifto modulį.
Pagrindinės balų sistemos sukūrimas
Tada sukurkite pagrindinę savo žaidimo taškų sistemą. Norėdami tai padaryti, deklaruokite ir inicijuokite du kintamuosius: score ir score_increment. Rezultato kintamasis stebės esamą žaidėjo rezultatą, o score_increment kintamasis nurodys, kiek rezultatas turėtų padidėti kiekvieną kartą, kai žaidėjas paliečia kliūtį.
Pridėkite šį kodą scenarijaus viršuje, po importuotais elementais:
rezultatas = 0
balo_prieaugis = 10
Toliau atnaujinkite rezultatą, kai žaidimas vyksta. Žaidimo cikle galite patikrinti, ar žaidėjo veikėjas nesusiduria su kliūtimi. Jei taip, padidinkite balą ta suma, nurodyta kintamajame score_increment.
Atnaujinkite žaidimo kilpą, kad įtrauktumėte šį kodą:
# Atnaujinkite žaidimo būseną
jeigu player.colliderect (kliūtis):
balas += balo_prieaugis
Šis kodas patikrina, ar žaidėjo veikėjas nesusiduria su kliūtimi. Jei taip, rezultatas padidinamas nurodyta suma.
Rezultato rodymas ekrane naudojant šrifto modulį
Dabar, kai turime pagrindinę balų sistemą, parodykime balą ekrane naudodami šrifto modulį.
Pirmiausia nustatykime šrifto objektą, pridėdami šį kodą prie žaidimo ciklo viršaus:
# Nustatykite šrifto objektą
šriftas = pygame.font. Šriftas (Nė vienas, 36)
Šis kodas sukuria 36 pikselių dydžio šrifto objektą ir nenurodyta šriftų šeima. Galite tinkinti šriftą ir šrifto dydį, nurodydami kitą šrifto failą ir dydį funkcijoje Font().
Tada nupieškime rezultatą į ekraną. Atnaujinę žaidimo būseną ir užpildę ekraną, pridėkite šį kodą prie žaidimo ciklo:
# Nubrėžkite balą į ekraną
score_text = font.render(f'Score: {score}', Tiesa, (255, 255, 255))
screen.blit (score_text, (10, 10))
Šis kodas naudoja šrifto objekto atvaizdavimo () metodą, kad sukurtų teksto paviršių, kuriame būtų balas, o tada nubraukia (nutraukia) teksto paviršių į ekraną (10, 10).
Natų teksto išvaizdos pritaikymas
Galiausiai tinkinkite balų teksto išvaizdą pasirinkdami šriftą ir šrifto dydį bei pakeisdami teksto spalvą.
Norėdami pasirinkti konkretų šriftą ir šrifto dydį, perduokite šrifto failą ir dydį kaip argumentus funkcijai Font():
šriftas = pygame.font. Šriftas („arial.ttf“, 48)
Galite lengvai Atsisiųskite įvairių šriftų failus iš interneto. Atsisiuntę įdėkite šrifto failą į savo darbo katalogo šaknį.
Norėdami pakeisti teksto spalvą, perduokite spalvų eilutę kaip trečiąjį metodo render() argumentą:
score_text = font.render(f'Score: {score}', Tiesa, (0, 255, 0))
Štai ir viskas! Atlikę šiuos pakeitimus, dabar turėtumėte turėti visiškai veikiančią žaidimo taškų sistemą, kuri rodo rezultatą ekrane ir atnaujina jį žaidėjui progresuojant žaidime. Galite toliau tinkinti balų teksto išvaizdą eksperimentuodami su skirtingomis šriftų šeimomis, dydžiais ir spalvomis.
Rezultatų stebėjimas žaidime
Žemiau yra visas darbo kodas, taip pat galite rasti kodą GitHub atpirkimo sandoris.
importuoti pygame
importuoti ospygame.init()
pygame.font.init()rezultatas = 0
balo_prieaugis = 10# Nustatykite langą
ekranas = pygame.display.set_mode((750, 450))# Nustatykite žaidimo laikrodį
laikrodis = pygame.time. Laikrodis()# Nustatykite žaidėjo charakterį
žaidėjas = pygame. Rect(100, 200, 50, 50)# Nustatykite kliūtį
kliūtis = pygame. Rect(200, 200, 50, 50)# Nustatykite žaidimo kilpą
kolTiesa:
šriftas = pygame.font. Šriftas (Nė vienas, 36)
# Tvarkykite įvykius
dėl įvykis in pygame.event.get():
jeigu event.type == pygame. UŽDARYTI:
pygame.quit()
sys.exit()
jeigu event.type == pygame. KEYDOWN:
jeigu event.key == pygame. K_LEFT:
grotuvas.x -= 10
elifas event.key == pygame. K_RIGHT:
grotuvas.x += 10
# Atnaujinkite žaidimo būseną
jeigu player.colliderect (kliūtis):
balas += balo_prieaugis
# Nupieškite žaidimą
screen.fill((0, 0, 0))
pygame.draw.rect (ekranas, (255, 0, 0), žaidėjas)
pygame.draw.rect (ekranas, (0, 255, 0), kliūtis)
# Nubrėžkite balą į ekraną
score_text = font.render(f'Score: {score}', Tiesa, (255, 255, 255))
screen.blit (score_text, (10, 10))
# Atnaujinkite ekraną
pygame.display.flip()
# Apribokite kadrų dažnį
laikrodis.tick(60)
Šis kodas sukuria 750x450 pikselių dydžio langą, žaidėjo personažą ir kliūtį. Jis naudoja žaidimo kilpą, kad tvarkytų įvykius, atnaujintų būseną ir nukreiptų žaidimą į ekraną. Ji taip pat apima balų sistemą, kuri padidina rezultatą dešimčia taškų kiekvieną kartą, kai žaidėjo personažas susiduria su kliūtimi, o šrifto objektas ir teksto atvaizdavimo kodas rodo rezultatą ekrane.
Įvykių tvarkymo skiltyje kodas taip pat apima funkciją perkelti žaidėjo veikėją į kairę ir dešinę naudojant rodyklių klavišus.
Žaidimo ciklas apima kodą, skirtą atnaujinti ekraną ir apriboti kadrų dažnį iki 60 FPS, užtikrinant, kad žaidimas vyktų sklandžiai.
Apskritai šis kodas yra pagrindinis pavyzdys, kaip rodyti ir atnaujinti žaidimų rezultatus Pygame, ir jį galima toliau pritaikyti bei išplėsti, kad būtų sukurti sudėtingesni ir patrauklesni žaidimai.
Sukurkite skirtingus žaidimus naudodami Pygame
„Pygame“ yra galinga ir paprasta naudoti biblioteka, skirta žaidimams „Python“ kurti. Turėdami gausų funkcijų ir galimybių rinkinį, galite sukurti daugybę žaidimų – nuo paprastų džemperių ir platformingų žaidimų iki sudėtingesnių ir įtraukiančių žaidimų.
Nesvarbu, ar esate pradedantysis, ar patyręs žaidimų kūrėjas, Pygame yra puikus pasirinkimas kuriant patrauklius ir linksmus žaidimus.