Instructions

73
for i in range(60):
pygame.draw.circle(FELD, SCHWARZ, punkt(190, i), 2)
Eine Schleife zeichnet nacheinander die 60 Minutenpunkte auf einem Kreis. Alle Punkte werden mit der
Funktion
punkt() ermittelt. Sie haben den gleichen Abstand vom Mittelpunkt, der mit 190 Pixeln in den vier
Quadranten noch genau 10 Pixel vom Fensterrand entfernt ist. Die Punkte haben einen Radius von
2 Pixeln.
for i in range(12):
pygame.draw.circle(FELD, SCHWARZ, punkt(190, i * 5), 4)
Eine zweite Schleife zeichnet 12 größere Kreise, die die Stunden auf dem Zifferblatt markieren. Diese haben
einen Radius von
4 Pixeln, werden einfach über die vorhandenen Kreise gezeichnet und überdecken diese
vollständig. Die Stundensymbole folgen im Winkelabstand von fünf Minuteneinheiten aufeinander, was man
durch die Multiplikation mit
5 in der Winkelangabe, die an die Funktion übergeben wird, erreicht.
mainloop = True; s1 = 0 Bevor die Hauptschleife des Programms startet, werden noch zwei Hilfsvariablen
definiert, die im folgenden Verlauf benötigt werden.
mainloop gibt wie im letzten Programmbeispiel an, ob
die Schleife weiterlaufen soll oder der Benutzer das Programm beenden möchte.
s1 speichert die zuletzt
angezeigte Sekunde.
while mainloop:
zeit = time.localtime()
Jetzt startet die Hauptschleife des Programms, die in jedem Durchlauf, unabhängig davon, wie lange er
dauert, die aktuelle Zeit in das Objekt
zeit schreibt. Dazu wird die Funktion time.localtime() aus der
time-Bibliothek verwendet. Das Ergebnis ist eine Datenstruktur, die aus verschiedenen Einzelwerten besteht.
s = zeit.tm_sec; m = zeit.tm_min; h = zeit.tm_hour
Die drei für die Uhrzeiger relevanten Werte, Sekunden, Minuten und Stunden, werden aus der Struktur in
drei Variablen
s, m und h geschrieben.
if h > 12:
h = h – 12
Analoguhren zeigen nur zwölf Stunden an. Die Funktion time.localtime() liefert alle Zeitangaben im 24-
Stunden-Format. Bei Zeitangaben am Nachmittag werden also einfach
12 Stunden subtrahiert.
Zeitdarstellung bei Analoguhren
Je nach verwendeter Mechanik gibt es zwei unterschiedliche Anzeigen bei Analoguhren. Bei echten analog
laufenden Uhren führt der Minutenzeiger eine gleichförmige Kreisbewegung aus, bei digital gesteuerten
Uhren, wie zum Beispiel Bahnhofsuhren, springt er zur vollen Minute um eine ganze Minute weiter. Letz-
teres Verfahren hat den Vorteil, dass die Uhrzeit besser auf einen Blick minutengenau abgelesen werden
kann. Bruchteile von Minuten sind im Alltag normalerweise nicht wichtig. Wir verwenden für unser
Uhrenprogramm ebenfalls dieses Verfahren. Der Stundenzeiger muss aber eine gleichförmige Kreisbewe-
gung ausführen. Hier wäre es sehr befremdlich und unübersichtlich, würde er jede volle Stunde um eine
ganze Stunde weiterspringen.