User manual
65
Ta vrstica nariše urni kazalec kot linijo širine 6 slikovnih točk z izhodiščem v središču in z
dolžino 120 slikovnih točk. Risanje poteka v kotu, ki ga navaja spremenljivka hm. Funkcija
pygame.draw.line() doslej ni bila uporabljena. Potrebuje pet parametrov:
• Površina nudi podatek o risalni površini, na kateri se riše, v našem primeru FELD.
• Barva navaja barvo kroga, v našem primeru je to predhodno definirana barva SCHWARZ.
• Začetna točka navaja začetno točko linije, v našem primeru je to središče ure.
• Končna točka navaja končno točko linije, v našem primeru se ta izračuna s funkcijo
punkt() iz kota urnega kazalca.
• Debelina navaja debelino linije.
Ista funkcija nariše tudi ostala dva kazalca ure.
pygame.draw.line(FELD, SCHWARZ, MP, punkt(170, m), 4)
Ta vrstica nariše minutni kazalec kot linijo širine 4 slikovnih točk z izhodiščem v središču in z
dolžino 170 slikovnih točk. Risanje poteka v kotu, ki ga navaja minutna vrednost.
pygame.draw.line(FELD, ROT, MP, punkt(180, s), 2)
Ta vrstica nariše sekundni kazalec kot rdečo linijo širine 2 slikovnih točk z izhodiščem v
središču in z dolžino 180 slikovnih točk. Risanje poteka v kotu, ki ga navaja sekundna
vrednost.
s1 = s
Sedaj se pravkar prikazana sekunda shrani v spremenljivki s1, da se lahko ta vrednost v
naslednjih prehodih zanke primerja z aktualno sekundo.
pygame.display.set_caption("Aktuelle Zeit: " + time.asctime())
Ta vrstica zapiše trenutni čas v digitalni obliki v naslov okna. Pri tem se uporabi funkcija
time.asctime() iz knjižnice time, ki nudi podatek o času kot že formatirano verigo
znakov.
pygame.display.update()
Doslej so bili vsi grafični elementi narisani samo virtualno. Šele ta vrstica resnično na novo
vzpostavi grafični prikaz. Posodobitev poteka hkrati. Iz tega razloga pri risanju posameznih
kazalcev eden za drugim ne prihaja do migetanja slike.
for event in pygame.event.get():
if event.type == QUIT or (event.type == KEYUP and event.key ==
K_ESCAPE):
mainloop = False
Še vedno znotraj poizvedbe if, torej tudi samo enkrat na sekundo, sledi poizvedba o
morebitnih sistemskih dogodkih, ki zahteva relativno veliko zmogljivost in s katero je možno
določiti, če je želel uporabnik v roku zadnje sekunde zapreti okno z uro ali pa je pritisnil tipko
[Esc]. Če se to zgodi, se spremenljivka mainloop nastavi na False, s čimer se zanka več
ne aktivira ponovno.
pygame.quit()
Zadnja vrstica najprej zaključi modul PyGame, to pa zapre tudi grafično okno in nato še
celoten program.