Introducing 

Prezi AI.

Your new presentation assistant.

Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.

Loading…
Transcript

Igor Pavlovski

PYGAME

*Kada kažemo da koristimo neku biblioteku, to znači da u svoje programe uključujemo skup unapred pripremljenih, tematski objedinjenih elemanata (na primer funkcija ili vrednosti) koji će nam olakšati programiranje.

OVDE KODIRAMO

PYGAME

import pygame as pg

import pygamebg

(sirina, visina) = (400, 400)

prozor = pygamebg.open_window(sirina, visina, "Pygame")

OVDE KODIRAMO

pygamebg.wait_loop()

ovde se prikazuje rezultat

PODSETNIK

KOORDINATNI SISTEM

Pogledaj tačku A(5,3) koja se nalazi dole na slici.

Ona je od leve ivice prozora udaljena 5 i zato kažemo da je vrednost njene x koordinate 5.Od gornje ivice je udaljena 3 i zato kažemo da je vrednost njene y koordinate 3.

Položaj svake tačke određen je uređenim parom ovakvih koordinata. Kada kažemo da je neki par uređen, to znači da je u tom paru važan redosled njegovih elemenata. U našem slučaju, za svaku tačku će se uvek prvo izraziti vrednost njene x koordinate, a onda vrednost njene y koordinate.

KOORDINATNI SISTEM

Položaj svih objekata (tačaka, duži, krugova i slično) u prozoru određuje se njihovim koordinatama u koordinatom sistemu prozora. Ovo je jako važno zato što ćemo u doslovno svakom programu u kome koristimo Pajgejm morati da određujemo položaj određenih objekata u prozoru.

Niska (string) predstavlja tekstualni podatak u Pajtonu i obeležava se pomoću jednostrukih navodnika '...' ili dvostrukih navodnika "...".

U Pajtonu se torka obeležava zagradama () i njeni elementi su odvojeni zarezima (element_1, element_2)

Lista predstavlja kolekciju elemenata sličnu torki, ali razlika je u tome što se lista može menjati (mogu joj se dodavati elementi, mogu joj se oduzimati elementi, mogu se menjati vrednosti elemenata…).

Liste se u Pajtonu obeležavaju uglastim zagradama [] i, kao i torke mogu sadržati brojeve, niske, torke, druge liste…

TORKE, LISTE

NISKE(STRINGOVI)

Click to edit text

Torka predstavlja kolekciju elemenata koji su uređeni i koji ne mogu da se menjaju (ne mogu joj se dodavati ili oduzimati elementi, niti im se može menjati vrednost)

TORKE, LISTE, NISKE

Zadavanje boja

Najlakši način da nešto obojimo u Pajgejmu je pomoću funkcije pg.Color.

Ova funkcija kao argument ima nisku koja predstavlja naziv boje na engleskom.

ZADAVANJE BOJA

Ako funkciju pg.Color upotrebimo sa argumentom 'blue', željeni element će biti obojen u plavo, za žutu ćemo upotrebiti 'yellow', za zelenu 'green' i slično

Pored osnovnih boja, koje se mogu dobiti na osnovu njihovog imena, mozes da samostalno definišeš neku svoju boju tj. nijansu.

To možeš najlakše uraditi korišćenjem modela boje RGB (engl. red-green-blue). Svetlo bilo koje boje se može dobiti kombinovanjem svetla crvene (Red), zelene (Green) i plave (Blue) boje.

RGB model

Boju tako možemo opisati navodeći tri broja (u ovom slučaju to su brojevi od 0 do 255), koji redom predstavljaju količinu crvene, zelene i plave komponente u boji koju definišemo.

prozor.fill([???, ???, ???])

Programeri, obojite prozor u zeleno koristeci RGB model

ZADATAK

Prozor se boji korišćenjem funkcije prozor.fill čiji je jedini parametar boja koja se zadaje naredbom pg.Color

Dakle,funkcija za bojenje prozora izgleda ovako:

prozor.fill(pg.Color("???"))

BOJENJE PROZORA

Programeri,promenite boju prozora u plavu boju

ZADATAK

CRTANJE

Sve funkcije za crtanje u biblioteci Pygame počinju sa pg.draw. Prvo ćemo se pozabaviti crtanjem duži.

Duž AB se crta pozivom funkcije pg.draw.line.

PRIMER:

pg.draw.line(prozor, pg.Color("black"), (100, 100), (300, 300), 5)

Dakle, vrši se poziv oblika pg.draw.line(prozor, boja, teme1, teme2, debljina)

Ova funkcija ima pet parametara koji se navode u zagradi.

Prvi parametar je prozor na kome želimo da nacrtamo duž (on se podešava unutar „sivog” koda i uvek će se zvati baš prozor).

Drugi parametar je boja.

Naredni parametri su koordinate početnog temena duži (na slici je to tačka A) i krajnjeg temena duži (tačka B).

Poslednji parametar je debljina linije kojom se iscrtava duž, zadata u pikselima.

CRTANJE DUŽI

ZADATAK

Napiši program koji pomoću tri duži iscrtava slovo A.

SAVET:

Za crtanje slova A potrebno je iscrtati tri duži (levu kosu liniju, desnu kosu liniju i horizontalnu crtu).

Veličina prozora je 200 × 200 i o ovome bi trebalo voditi računa prilikom određivanja koordinata tačaka koje predstavljaju temena duži. Spajanjem odgovarajućih tačaka, formiraju se duži.

Na slici možeš videti koordinate tačaka. Tačka A je 50 piksela udaljena po osi x, i 150 na niže po osi y, zato su koordinate tačke A=(50,150).

Na isti način ćeš odrediti koordinate ostalih tačaka. Upiši ih u program umesto upitnika, a zatim pokreni program i proveri da li se dobija slovo A (jedna linija je vec smo već ucrtana).

SLOVO A

Uvescemo promenljivu debljina da bismo debljinu obe linije mogli da kontrolišemo samo na jednom mestu.

Ova promenljiva je postavljena (inicijalizovana) na početku na 10 (naredbom dodele debljina = 10) i promenom vrednosti ove promenljive menja se debljina sve tri duži koje čine naše slovo.

I u narednim programima ćemo uvoditi pomoćne promenljive koje će nam pomoći da lakše pišemo i prilagođavamo naše programe.

RESENJE

CRTANJE KRUGOVA,PRAVOUGAONIKA,ELIPSI

Biblioteka PyGame omogućava i jednostavno crtanje krugova, korišćenjem funkcije pg.draw.circle.

Parametri funkcije su redom:

prozor na kome se crta,

boja kojom se crta,

uređeni par (obavezno celih brojeva) kojim se zadaju koordinate centra kruga,

poluprečnik kruga (obavezno ceo broj).

Nakon poluprečnika je moguće zadati i debljinu kruznice u pikselima (u tom slučaju se crta samo kružna linija, kao što je urađeno u slučaju crvenog kruga).

KRUGOVI

Ako se taj parametar izostavi, onda se crta krug koji je ispunjen bojom (kao što je urađeno u slučaju plavog kruga).

import pygame as pg

import pygamebg

(sirina, visina) = (400, 400)

prozor = pygamebg.open_window(sirina, visina, "Pygame")

# bojimo pozadinu u belo

prozor.fill(pg.Color("white"))

# crtamo crveni krug

pg.draw.circle(prozor, pg.Color("red"), (50, 50), 30, 2)

# crtamo plavi krug

pg.draw.circle(prozor, pg.Color("blue"), (150, 150), 30)

pygamebg.wait_loop()

Zakljcak:

Prvim pozivom funkcije pg.draw.circle nacrtana je crvena kružnica debljine 2, sa centrom u tački (50,50), poluprečnika 30, dok je drugim pozivom nacrtan plavi krug sa centrom u tački (150,150), poluprečnika 50 piksela.

PRIMER:

Prvo crtamo crni pravougaonik čije se gornje levo teme nalazi na koordinatama (50,50) (prva je koordinata x koja određuje udaljenost tog temena od leve ivice prozora, a druga je koordinata y koja određuje udaljenost tog temena od gornje ivice prozora), čija je širina 200 piksela, a visina 100 piksela.

Zatim se crta crveni pravougaonik čije se gornje levo teme nalazi na koordinatama (75,75), čija je širina 150, a visina 50 piksela. Prvi poziv funkcije pg.draw.rect sadrži i četvrti parametar - broj 1, koji predstavlja debljinu okvira pravougaonika u pikselima.

U biblioteci PyGame možemo jednostavno crtati kvadrate i pravougaonike. Za to koristimo funkciju pg.draw.rect.

Parametri funkcije su redom:

prozor na kome se crta,

boja,

uređena četvorka brojeva čija prva dva broja predstavljaju koordinate gornjeg levog temena pravougaonika, a druga dva predstavljaju redom njegovu širinu i visinu.

KVADRAT,PRAVOUGAONIK

import pygame as pg

import pygamebg

(sirina, visina) = (400, 400)

prozor = pygamebg.open_window(sirina, visina, "Pygame")

# bojimo pozadinu u belo

prozor.fill(pg.Color("white"))

# crtamo crni pravougonik

pg.draw.rect(prozor, pg.Color("black"),(50, 50, 200, 100),1)

# crtamo crveni pravougaonik

pg.draw.rect(prozor, pg.Color("red"),(75, 75, 150, 50))

pygamebg.wait_loop()

ELIPSA

Learn more about creating dynamic, engaging presentations with Prezi