Prikazivanje gotovih slika

Crtanje osnovnih oblika može da bude zabavno, a ponekad je i izazovno. Ipak, bilo bi još zabavnije da možemo da kombinujemo svoje crtanje sa gotovim slikama ili fotografijama. U PyGame okruženju to se radi veoma jednostavno. Pogledajmo sledeći primer:

../_images/tree.png ../_images/apple_small.png ../_images/basket.png

U ovom programu nove su nam dve funkcije biblioteke PyGame:

Isprobajte upisivanje raznih vrednosti koordinata umesto \((0, 0)\) da biste bolje razumeli kako funkcioniše funkcija blit. Možemo da primetimo da je ovo iscrtavanje vrlo slično crtanju crteža iz više delova pomoću sidra.

Možete da isprobate i prikazivanje jedne slike na više mesta na ekranu, kao što smo to radili sa osnovnim oblicima. Dovoljno je da pozovete funkciju blit više puta, sa različitim vrednostima za mesto prikazivanja.

Kod prikazivanja slike na više mesta može doći do preklapanja slika. Zato treba voditi računa o redosledu prikazivanja. U našem slučaju, prvo treba prikazati drvo koje zamišljamo kao dalje, a zatim ono koje zamišljamo kao bliže. U protivnom konačna scena može izgledati nelogično, kao što pokazuje sledeća slika.

../_images/trees_and_apples_bad.png

Objekti koje doživljavamo kao dalje su obično u gornjem delu slike, što znači da imaju manju \(y\) koordinatu, mada ovo ne mora uvek da bude tačno. U ovom i u sličnim primerima će biti dovoljno da se držimo ovog jednostavnog pravila: bolje je prvo prikazivati objekte sa manjom \(y\) koordinatom.

Zadaci za vežbu

Zadatak - Drveće

U sledećem programu popravite redosled pozicija drveća u listi, tako da redosled iscrtavanja bude ispravan, a zatim dodajte u petlji naredbu za crtanje drveta na poziciji (x, y).

Zadatak - Jabuke

Dovršite započeti program tako da crta drvo sa jabukama (kao u primeru).

Pokušajte da izmenite program tako da prikazuje drvo sa jabukama pomereno 100 piksela desno i 50 piksela niže.

Zadatak - Šah-mat

Napišite program koji crta šahovsku poziciju, kao u primeru. Nazivi fajlova sa slikama prazne table, belog kralja, belog topa i crnog kralja su redom „chess_table.png”, „white_king.png”, „white_rook.png”, „black_king.png”.

../_images/chess_table.png ../_images/white_king.png ../_images/white_rook.png ../_images/black_king.png

Zadatak - Voćnjak

U sledećem zadatku je započeto crtanje voćnjaka. Ako pokrenemo program (dugme „Pokreni program”), primetićemo neke nedoslednosti. Jedan problem je to što se jabuke nalaze samo na prvom drvetu, a treba da se nalaze na svakom drvetu, raspoređene na isti način. Osim toga, drugo drvo sleva (ispravno) preklapa krajnje levo drvo, ali ne preklapa njegove jabuke. Potrebno je da drvo koje prikazujemo ranije, prikažemo zajedno sa njegovim jabukama pre nego što pređemo na sledeće drvo.

Ispravite program, tako da prikazuje sliku koja se dobija klikom na dugme „Prikaži primer”.