Windows käsurida
Igale arvutile on töötamiseks paigaldatud operatsioonisüsteem (näiteks MS...
Selles peatükis vaatame kuidas lisada tekste ja pilte oma mängu ekraanile. Tekste kasutad näiteks menüü loomisel, staatuse kuvamiseks jne. Lisasin tekstid ja pildid ühte teemasse, kuna olemuselt kuvatakse need sarnaselt ekraanile. Nii on, et tekstist tehakse ka enne pilt ja siis kuvatakse alles ekraanil. Kasutame harjutamiseks dokumentatsiooni: https://www.pygame.org/docs/ref/font.html. Teksti lisamise koosneb kolmest sammust:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import pygame pygame.init() #ekraani seaded screen=pygame.display.set_mode([640,480]) pygame.display.set_caption("Harjutamine") screen.fill([204, 255, 204]) #lisame teksti font = pygame.font.Font(None, 30) text = font.render("Hello PyGame", True, [0,0,0]) screen.blit(text, [200,200]) pygame.display.flip() |
Fondi lisamisel kasutasime atribuuti None, mis kasutab süsteemi vaikimisi pakutud fonti. Võimalus on täpselt määrata font, kui kasutad SysFont() meetodit.
1 2 | font = pygame.font.SysFont("Tahoma", 50) |
Kui on võimalus, et võid fondi nimega mööda panna või nimi võib arvutites natuke erineda, siis saad kasutada nime ligikaudset määramist. Ehk programm leiab otsingusõnale vastava fondi ise.
1 2 | font = pygame.font.Font(pygame.font.match_font('arial'), 50) |
Teksti lisamisega tekib nö pilt, millel on ristküliku omadused. Ehk tekib kindel laius ja kõrgus, mida võib mängu loomisel vaja minna. Näiteks kasvõi teksti keskele paigutamiseks (näiteks jagad selle kahega ja lahutad ekraani laiusest/kõrgusest maha). Kasutame selleks get_rect() meetodit.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | import pygame pygame.init() #ekraani seaded screen=pygame.display.set_mode([640,480]) pygame.display.set_caption("Harjutamine") screen.fill([204, 255, 204]) #lisame teksti font = pygame.font.Font(pygame.font.match_font('arial'), 50) text = font.render("Hello PyGame", True, [0,0,0]) #tekstikasti suurus text_width = text.get_rect().width text_height = text.get_rect().height screen.blit(text, [320,240]) pygame.display.flip() |
Dokumentatsioonist selgub veel, et meil on võimalik teksti veel natuke vormindada:
Kasutame näiteks allajoonimist.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import pygame pygame.init() #ekraani seaded screen=pygame.display.set_mode([640,480]) pygame.display.set_caption("Harjutamine") screen.fill([204, 255, 204]) #lisame teksti font = pygame.font.Font(pygame.font.match_font('arial'), 50) font.set_underline(True) text = font.render("Hello PyGame", True, [0,0,0]) #tekstikasti suurus text_width = text.get_rect().width text_height = text.get_rect().height screen.blit(text, [320-text_width/2,240-text_height/2]) pygame.display.flip() |
Mängude oluline osa on piltidel. Taustad, karakterid, plahvatused jne jne. Pildi lisamisega on nagu tekstiga – loo pilt ja kuva soovitud kohas. Kasutame image() meetodit ja näeme , et see suudab kuvada järgmisi formaate:
1 2 3 4 5 6 7 8 9 10 11 12 13 | import pygame pygame.init() #ekraani seaded screen=pygame.display.set_mode([640,480]) pygame.display.set_caption("Harjutamine") screen.fill([204, 255, 204]) #Lisame pildid bg = pygame.image.load("img/bg.jpg") screen.blit(bg,[0,0]) pygame.display.flip() |
Hetkel oli pilt mul täpselt vajaliku ekraani suurusega. Aga lisame veel ühe pildi.
Antud juhul on pilt liiga suur. See annab võimaluse kasutada transform() meetodit, mille abil saame pildi mõõtmeid muuta. Ja paigutame pildi kenasti ekraani keskele.
1 2 3 4 | youWin = pygame.image.load("img/youwin.png") youWin = pygame.transform.scale(youWin, [300, 120]) screen.blit(youWin,[180,100]) |