User manual
része. Minden percben az óramutató egy óra 1/60 részével továbbmegy. A számított értéket 5 -
tel megszorozza a program, mivel az óramutató óránként öt percegységet halad előre a
számlapon.
if s1 <> s: Egy hurokmenet időtartama a programban nem ismert. Az analóg óra esetében ez azt
jelenti, hogy a grafikát nem kell miden egyes hurokmenetben frissíteni, hanem csak akkor, ha
az aktuális másodperc más mint az előzőleg kiírt. Ehhez később a programban a kiírt
másodperc az
s1 változóban áll.
Ha a másodperc megváltozott az utoljára kiírthoz képest, a most következő utasításokkal az óra
grafikája frissül. Ha nem változott, akkor nem kell frissíteni a grafikát, és a hurok újraindul az
aktuális rendszeridő lekérdezésével.
pygame.draw.circle(FELD, WEISS, MP, 182)
Elsőként egy fehér körfelületet rajzol a program, amely teljesen eltakarja az óramutatót. A 182
pixel méretű sugár egy kicsit nagyobb, mint a leghosszabbik mutató, hogy ne maradjon ott egy
kis maradéka sem. Egy teljes felületű kört sokkal egyszerűbb rajzolni, mint a legutoljára kirajzolt
mutató pixelenként pontosan átfesteni.
pygame.draw.line(FELD, SCHWARTZ, MP, punkt(120, hm), 6)
Ez a sor megrajzolja az óramutatót egy 6 pixel szélességű, a középponttól vett 120 pixel
hosszúságú vonalként, a
hm változó által megadott szögben. A pygame.draw.line() funkciót eddig
még nem alkalmaztuk. Öt paraméterre van szüksége:
• A
Surface adja meg azt a karakterfelületet, amelyre a rajzolás történik, ez lehet pl. a FELD.
• A Farbe adja meg a kör színét, példánkban az ellőbb definiált SCHWARTZ(fekete) színt.
• Az Anfangspunkt adja meg a vonal kezdőpontját, példánkban az óra középpontját.
• Az Endpunkt adja meg a vonal végpontját, példánkban ezt a punkt() funkció az óramutató
szögéből számítja ki.
• A
Dicke adja meg a vonal vastagságát.
Ugyanez a funkció rajzolja meg az óra két másik mutatóját is.
pygame.draw.line(FELD, SCHWARTZ, MP, punkt(170, m), 4)
Ez a sor megrajzolja a percmutatót egy 4 pixel szélességű, a középponttól vett 170 pixel
hosszúságú vonalként, a percérték által megadott szögben.
pygame.draw.line(FELD, ROT, MP, punkt(180, s), 2)
76