6 Prikaz slike i ispisivanje teksta u Pygameu

















![LISTE neka_lista=[podatak 1, podatak 2, . . . , podatak 5] indeksi 0 1 LISTE neka_lista=[podatak 1, podatak 2, . . . , podatak 5] indeksi 0 1](https://slidetodoc.com/presentation_image_h2/95a904546a1fcc827672f5ca1740358f/image-18.jpg)




















- Slides: 38
6. Prikaz slike i ispisivanje teksta u Pygame-u
Plan rada 1. Uvod u Pygame i instalacija 2. Koordinatni sistem i crtanje duži 3. Crtanje pravougaonika, kvadrata i mnogouglova 4. Crtanje krugova, elipsi i lukova 5. Struktura Pygame programa, podešavanje boja i generisanje slučajnih vrednosti 6. Prikaz slike i ispisivanje teksta u Pygame-u 7. Crtanje grafike korištenjem petlji i kombinovanje raznih geometrijskih oblika 8. Animacije i simulacije 9. Jednostavne igrice 10. Reagovanje na događaje sa miša ili tastature 11. Jednostavne igrice 12. Jednostavne igrice
Naša stranica na sajtu https: //www. procoding. rs/pygame-kurs-programiranje-2 d-grafike-animacija-i-igrica/
Domaći zadatak
Pydroid – aplikacija u androidu za python i pygame • Preuzima se sa play prodavnice • Samo početni deo python/pyagame programa se razlikuje
import pygame_sdl 2 Primer u Pydroid-u pygame_sdl 2. import_as_pygame() import sys import pygame from pygame. locals import* pygame. init() prozor=pygame. display. set_mode((720, 1480)) while True: prozor. fill((0, 255, 0)) pygame. draw. line(prozor, pygame. Color("red"), (0, 0), (720, 1480), 3) pygame. draw. line(prozor, pygame. Color("red"), (720, 0), (0, 1480), 3) pygame. draw. rect(prozor, pygame. Color("red"), (50, 300, 300), 5) pygame. display. update()
Komande za instalaciju Py. Game pip 3 install pygame py -3 -m pip install pygame py -m pip install pygame
Šta je PIP? PIP je softverski menadžer za instalaciju Python paketa(biblioteka) kao npr. Py. Game • Naredba pip –version proverava verziju pip • Naredba pip list izlistava sve pip pakete tj, biblioteke instalirane na vašem računaru
Naredbe u Py. Game-u NAREDBA OBJAŠNJENJE import pygame Importuje tj. uvozi biblioteku pygame u program pygame. init() Inicijalizuje biblioteku prozor=pygame. display. set_mode((200, 200)) Prikazuje prozor sa dimenzijama 200 x 200 piksela pygame. display. set_caption("NASLOV PROZORA") Upisuje u title bar (traku naslova) prozor. fill(pygame. Color(“white”)) Boji prozor u datoj boji pygame. draw. line() Crta duž pygame. display. update() osvežavanje prozora i prikazivanje novog sadržaja pygame. time. wait(5000) Pauzira program na 5 sekundi pygame. quit() Isključivanje biblioteke
KORACI U REALIZACIJI PROGRAMA 1. INICIJALIZACIJA BIBLIOTEKE Py. Game 2. OTVARANJE PROZORA, PODEŠAVANJE DIMENZIJA I NASLOVA 3. ISCRTAVANJE NEKOG SADRZAJA U PROZORU 4. PAUZIRANJE I ČEKANJE NA DOGADJAJ SA MIŠA ILI TASTATURE 5. ZATVARANJE PROGRAMA
Py. Game KOORDINATNI SISTEM • U Py. Game prozoru koordinatni sistem je malo drugačiji od pravouglog koordinatnog sistema • Merna jedinica je 1 piksel a položaj svake tačke je određen uređenim parom koordinata (x, y) • U gornjem levom uglu Py. Game prozora je tačka (0, 0) • Koordinata x raste kada se pomeramo u desno • Koordinata y raste kada se pomeramo na dole Nastavnik Informatike i računarstva dipl. ing. Sead Gicić 11
Neke od naredbi crtanje linije: pygame. draw. line(prozor, pygame. Color("red"), (50, 50), (450, 450), 3) crtanje pravougaonika: pygame. draw. rect(prozor, pygame. Color("blue"), (10, 200, 200), 5) crtanje mnogougla: pygame. draw. polygon(prozor, pygame. Color(“red”), temena) crtanje kruga: pygame. draw. circle(prozor, pygame. Color("blue"), (krug_c_x, krug_c_y), 50, 3) crtanje elipse: pygame. draw. elipse(prozor, pygame. Color("blue"), (krug_c_x, krug_c_y), 50, 3) crtanje luka: pygame. draw. arc(prozor, pygame. Color("blue"), (50, 300, 200), math. radians(150), 1)
1. STRUKTURA PROGRAMA KOJI SE ZATVARA SA CLOSE(X) sa funkcijom event. wait() # 1 INICIJALIZACIJA BIBLIOTEKE Py. Game import pygame. init() # 2 OTVARANJE PROZORA, DIMENZIJE I NASLOV prozor=pygame. display. set_mode((500, 500)) pygame. display. set_caption("NASLOV PROZORA") # 3 ISCRTAVANJE NEKOG SADRZAJA U PROZORU prozor. fill(pygame. Color("white")) pygame. draw. line(prozor, pygame. Color("red"), (50, 50), (450, 450), 3 ) pygame. display. update() # 4 PAUZIRANJE I CEKANJE NA DOGADJAJ SA MISA ILI TASTATURE while pygame. event. wait(). type != pygame. QUIT: pass # 5 ZATVARANJE PROGRAMA pygame. quit()
Petlja WHILE while (uslov): naredba (sve dok je ispunjen uslov, petlja će ponavljati naredbu) while (uslov): naredba 1 naredba 2. . naredba n
2. STRUKTURA PROGRAMA KOJI SE ZATVARA SA CLOSE(X) sa petljama while i for i funkcijom event. get() event. get # 1 OTVARANJE PROZORA, DIMENZIJE I NASLOV import pygame. init() prozor=pygame. display. set_mode((500, 500)) pygame. display. set_caption("NASLOV PROZORA") # 2 ISCRTAVANJE NEKOG SADRZAJA U PROZORU prozor. fill(pygame. Color("white")) pygame. display. update() # 3 PAUZIRANJE I CEKANJE NA DOGADJAJ SA MISA ILI TASTATURE pokrenuta_igrica=True # napravimo promenljivu while pokrenuta_igrica: pass for dogadjaj in pygame. event. get(): if dogadjaj. type==pygame. QUIT: pokrenuta_igrica=False # 4 ZATVARANJE PROGRAMA pygame. quit()
PETLJA FOR print(“Zdravo”) print(“Zdravo”) -----------------------for i in range(5): # ponovi 5 puta: print(“Zdravo”)
PETLJA FOR sa početnom i krajnom vrednošću i korakom for i in range(1, 11, 2): # 1 je početna vrednost, print(i) #11 je krajnja vrednost +1 # 2 je korak štampanja
LISTE neka_lista=[podatak 1, podatak 2, . . . , podatak 5] indeksi 0 1 1/29/2022 Nastavnik Informatike i računarstva dipl. ing. Sead Gicić . . . 4 18
# 1 OTVARANJE PROZORA, DIMENZIJE I NASLOV import pygame. init() prozor=pygame. display. set_mode((500, 500)) pygame. display. set_caption("NASLOV PROZORA") # 2 ISCRTAVANJE NEKOG SADRZAJA U PROZORU prozor. fill(pygame. Color("white")) pygame. draw. line(prozor, pygame. Color("red"), (50, 50), (450, 450), 3) pygame. display. update() # 3 PAUZIRANJE I CEKANJE NA DOGADJAJ SA MISA ILI TASTATURE pokrenuta_igrica=True while pokrenuta_igrica: kliknut_taster=pygame. key. get_pressed() pygame. key. set_repeat for dogadjaj in pygame. event. get(): if dogadjaj. type==pygame. QUIT: pokrenuta_igrica=False if kliknut_taster[pygame. K_ESCAPE]: pokrenuta_igrica=False # 4 ZATVARANJE PROGRAMA pygame. quit() Struktura programa sa zatvaranjem na X i ESC
RGB model Colour picker
Colour picker od 0 do 255 prozor. fill(pygame. Color(13, 113, 213)) od 0 do 255 pygame. draw. line(prozor, pygame. Color(20, 120, 90), (100, 180), (150, 150), 5)
Slučajno generisane vrednosti Kad se nešto dešava u neočekivanom redosledu kažemo da je slučajno(eng. random). Da bi računarske igrice bile zanimljivije u njeh se dodaju neki elementi slučajnosti. U programskom jeziku Python za dobijanje slučajnih vrednosti se koristi bibilioteka random. U okviru ove biblioteke koristi se funkcija randint(a, b) primer: x=random. randint(1, 100)
Učitavanje i prikaz slike učitavanje slike: slika=pygame. image. load(jabuka. png) prikaz učitane slike: prozor. blit(slika, (x, y))
# 1 INICIJALIZACIJA BIBLIOTEKE Py. Game import pygame. init() # 2 OTVARANJE PROZORA, DIMENZIJE I NASLOV prozor=pygame. display. set_mode((500, 500)) pygame. display. set_caption("POSTAVLJAMO SLIKU JABUKE U PROZORU") # 3 ISCRTAVANJE NEKOG SADRZAJA U PROZORU prozor. fill(pygame. Color("white")) slika=pygame. image. load("jabuka. png") x=0 # ZA SLIKU SMO UZELI VRSNU LEVU TACKU y=0 prozor. blit(slika, (x, y)) pygame. display. update() # 4 PAUZIRANJE I CEKANJE NA DOGADJAJ SA MISA ILI TASTATURE while pygame. event. wait(). type != pygame. QUIT: pass # 5 ZATVARANJE PROGRAMA pygame. quit() Primer programa
# 1 INICIJALIZACIJA BIBLIOTEKE Py. Game import pygame. init() # 2 OTVARANJE PROZORA, DIMENZIJE I NASLOV prozor=pygame. display. set_mode((500, 500)) pygame. display. set_caption("POSTAVLJAMO SLIKU MAKAZA U PROZORU") # 3 ISCRTAVANJE NEKOG SADRZAJA U PROZORU prozor. fill(pygame. Color("white")) slika=pygame. image. load("scissors. png") x=500 -67 y=0 prozor. blit(slika, (x, y)) pygame. display. update() # 4 PAUZIRANJE I CEKANJE NA DOGADJAJ SA MISA ILI TASTATURE while pygame. event. wait(). type != pygame. QUIT: pass # 5 ZATVARANJE PROGRAMA pygame. quit() Primer programa
# 1 INICIJALIZACIJA BIBLIOTEKE Py. Game import pygame. init() # 2 OTVARANJE PROZORA, DIMENZIJE I NASLOV prozor=pygame. display. set_mode((500, 500)) pygame. display. set_caption("POSTAVLJAMO SLIKU BEOGRADA U DONJEM DESNOM UGLU") # 3 ISCRTAVANJE NEKOG SADRZAJA U PROZORU prozor. fill(pygame. Color("white")) slika=pygame. image. load("beograd 300 x 157. jpg") x=500 -300 # ZA SLIKU SMO UZELI VRSNU LEVU TACKU y=500 -157 prozor. blit(slika, (x, y)) pygame. display. update() # 4 PAUZIRANJE I CEKANJE NA DOGADJAJ SA MISA ILI TASTATURE while pygame. event. wait(). type != pygame. QUIT: pass # 5 ZATVARANJE PROGRAMA pygame. quit() Primer programa
# 1 INICIJALIZACIJA BIBLIOTEKE Py. Game import pygame. init() # 2 OTVARANJE PROZORA, DIMENZIJE I NASLOV prozor=pygame. display. set_mode((500, 500)) pygame. display. set_caption("POSTAVLJAMO SLIKU TUTINA U DONJEM LEVOM UGLU") # 3 ISCRTAVANJE NEKOG SADRZAJA U PROZORU prozor. fill(pygame. Color("white")) slika=pygame. image. load("tutin 300 x 175. jpg") x=0 y=500 -175 prozor. blit(slika, (x, y)) pygame. display. update() # 4 PAUZIRANJE I CEKANJE NA DOGADJAJ SA MISA ILI TASTATURE while pygame. event. wait(). type != pygame. QUIT: pass # 5 ZATVARANJE PROGRAMA pygame. quit() Primer programa
Određivanje širine i visine slike pomoću funkcije širina slike: get. width() visina slike: get. height()
# 1 INICIJALIZACIJA BIBLIOTEKE Py. Game import pygame. init() # 2 OTVARANJE PROZORA, DIMENZIJE I NASLOV prozor=pygame. display. set_mode((500, 500)) pygame. display. set_caption("POSTAVLJAMO SLIKU U CENTAR I COSKOVE") # 3 ISCRTAVANJE NEKOG SADRZAJA U PROZORU prozor. fill(pygame. Color("white")) # 1 centar slika 1=pygame. image. load("novi pazar 100 x 56. jpg") x=(500 -slika 1. get_width())/2 y=(500 -slika 1. get_height())/2 prozor. blit(slika 1, (x, y)) # 2 gornji levi slika 2=pygame. image. load("macka. png") x=0 y=0 prozor. blit(slika 2, (x, y)) # 3 gornji desni slika 3=pygame. image. load("rock. png") x=500 -slika 3. get_width() y=0 prozor. blit(slika 3, (x, y)) # 4 donji levi slika 4=pygame. image. load("scissors. png") x=0 y=500 -slika 4. get_height() prozor. blit(slika 4, (x, y)) # 5 donji desni slika 5=pygame. image. load("paper. png") x=500 -slika 5. get_width() y=500 -slika 5. get_height() prozor. blit(slika 5, (x, y)) pygame. display. update() # 4 PAUZIRANJE I CEKANJE NA DOGADJAJ SA MISA ILI TASTATURE while pygame. event. wait(). type != pygame. QUIT: pass # 5 ZATVARANJE PROGRAMA pygame. quit() Primer programa
Ispisivanje teksta - određivanje fonta font=pygame. font. Sys. Font("Arial", 40) - određivanje poruka="Zdravo Py. Game!" - kreiranje slike koja će predstavljati poruku ispisanu nekom bojom tekst_kao_slika=font. render(poruka, True, pygame. Color("blue")) - prikaz poruke na odgovarajućem mestu na ekranu prozor. blit(tekst_kao_slika, (20, 20))
# 1 INICIJALIZACIJA BIBLIOTEKE Py. Game import pygame. init() # 2 OTVARANJE PROZORA, DIMENZIJE I NASLOV prozor=pygame. display. set_mode((500, 500)) pygame. display. set_caption("ISPISUJEMO PORUKU U PROZORU") # 3 ISCRTAVANJE NEKOG SADRZAJA U PROZORU prozor. fill(pygame. Color("white")) font=pygame. font. Sys. Font("Arial", 40) poruka="Zdravo Py. Game-aši!" tekst_kao_slika=font. render(poruka, True, pygame. Color("blue")) prozor. blit(tekst_kao_slika, (20, 20)) pygame. display. update() # 4 PAUZIRANJE I CEKANJE NA DOGADJAJ SA MISA ILI TASTATURE while pygame. event. wait(). type != pygame. QUIT: pass # 5 ZATVARANJE PROGRAMA pygame. quit() Primer programa
# 1 INICIJALIZACIJA BIBLIOTEKE Py. Game import pygame. init() # 2 OTVARANJE PROZORA, DIMENZIJE I NASLOV prozor=pygame. display. set_mode((500, 500)) pygame. display. set_caption("ISPISUJEMO PORUKU U PROZORU") # 3 ISCRTAVANJE NEKOG SADRZAJA U PROZORU prozor. fill(pygame. Color("white")) font=pygame. font. Sys. Font("Arial", 40) poruka="Zdravo Py. Game-aši!" tekst_kao_slika=font. render(poruka, True, pygame. Color("blue")) (sir_sl, vis_sl)=(tekst_kao_slika. get_width(), tekst_kao_slika. get_height()) (x, y)=((500 -sir_sl)/2, 20) prozor. blit(tekst_kao_slika, (x, y)) pygame. display. update() # 4 PAUZIRANJE I CEKANJE NA DOGADJAJ SA MISA ILI TASTATURE while pygame. event. wait(). type != pygame. QUIT: pass # 5 ZATVARANJE PROGRAMA pygame. quit() Primer programa
# 1 INICIJALIZACIJA BIBLIOTEKE Py. Game import pygame. init() # 2 OTVARANJE PROZORA, DIMENZIJE I NASLOV prozor=pygame. display. set_mode((500, 500)) pygame. display. set_caption("ISPISUJEMO PORUKU U PROZORU") # 3 ISCRTAVANJE NEKOG SADRZAJA U PROZORU prozor. fill(pygame. Color("white")) font=pygame. font. Sys. Font("Arial", 40) poruka="Zdravo Py. Game-aši!" tekst_kao_slika=font. render(poruka, True, pygame. Color("blue")) (sir_sl, vis_sl)=(tekst_kao_slika. get_width(), tekst_kao_slika. get_height()) (x, y)=((500 -sir_sl)/2, (500 -vis_sl)/2) prozor. blit(tekst_kao_slika, (x, y)) pygame. display. update() # 4 PAUZIRANJE I CEKANJE NA DOGADJAJ SA MISA ILI TASTATURE while pygame. event. wait(). type != pygame. QUIT: pass # 5 ZATVARANJE PROGRAMA pygame. quit() Primer programa
# 1 INICIJALIZACIJA BIBLIOTEKE Py. Game import pygame. init() # 2 OTVARANJE PROZORA, DIMENZIJE I NASLOV prozor=pygame. display. set_mode((500, 500)) pygame. display. set_caption("ISPISUJEMO PORUKU U PROZORU") # 3 ISCRTAVANJE NEKOG SADRZAJA U PROZORU prozor. fill(pygame. Color("white")) font=pygame. font. Sys. Font("Arial", 40) poruka="Zdravo Py. Game-aši!" tekst_kao_slika=font. render(poruka, True, pygame. Color("blue")) (sir_sl, vis_sl)=(tekst_kao_slika. get_width(), tekst_kao_slika. get_height()) (x, y)=((500 -sir_sl)/2, (500 -vis_sl)) prozor. blit(tekst_kao_slika, (x, y)) pygame. display. update() # 4 PAUZIRANJE I CEKANJE NA DOGADJAJ SA MISA ILI TASTATURE while pygame. event. wait(). type != pygame. QUIT: pass # 5 ZATVARANJE PROGRAMA pygame. quit() Primer programa
# 1 INICIJALIZACIJA BIBLIOTEKE Py. Game import pygame. init() # 2 OTVARANJE PROZORA, DIMENZIJE I NASLOV prozor=pygame. display. set_mode((500, 500)) pygame. display. set_caption("POSTAVLJAMO SLIKU RASKE U CENTAR") # 3 ISCRTAVANJE NEKOG SADRZAJA U PROZORU prozor. fill(pygame. Color("white")) #---- SLIKA -----slika=pygame. image. load("raska 240 x 180. jpg") x=(500 -slika. get_width())/2 y=(500 -slika. get_height())/2 prozor. blit(slika, (x, y)) #----- TEKST ----font=pygame. font. Sys. Font("Arial", 40) poruka="Zdravo Raška!" tekst_kao_slika=font. render(poruka, True, pygame. Color("blue")) (sir_sl, vis_sl)=(tekst_kao_slika. get_width(), tekst_kao_slika. get_height()) (xp, yp)=((500 -sir_sl)/2, 20) prozor. blit(tekst_kao_slika, (xp, yp)) pygame. display. update() # 4 PAUZIRANJE I CEKANJE NA DOGADJAJ SA MISA ILI TASTATURE while pygame. event. wait(). type != pygame. QUIT: pass # 5 ZATVARANJE PROGRAMA pygame. quit() Primer programa
import pygame. init() prozor=pygame. display. set_mode((500, 500)) pygame. display. set_caption("POMERAMO TEKST") prozor. fill(pygame. Color("white")) font=pygame. font. Sys. Font("Arial", 40) poruka="Pomera se tekst!" tekst_kao_slika=font. render(poruka, True, pygame. Color("blue")) (sirina_teksta, visina_teksta)=(tekst_kao_slika. get_width(), tekst_kao_slika. get_height()) (x, y)=((500 -sirina_teksta)/2, (500 -visina_teksta)/2) for i in range(5): prozor. fill(pygame. Color("white")) prozor. blit(tekst_kao_slika, (x, y)) x=x+20 y=y+20 pygame. display. update() pygame. time. wait(1000) pygame. display. update() # PAUZIRANJE I CEKANJE NA DOGADJAJ SA MISA ILI TASTATURE while pygame. event. wait(). type != pygame. QUIT: pass pygame. quit() Primer programa sa pomeranjem teksta