====== Game loop ======
nextEvent = time.ticks_ms() + zeitBisEreignis # Zeit jetzt plus Dauer bis zum nächsten Ereignis
while True:
if time.ticks_ms()>= nextEvent:
# Tun, was zu tun ist
nextEvent = time.ticks_ms() + zeitBisEreignis
if userInteraction:
# Interaktion auswerten
# eventuell weitere Ereignisse generieren
Erweiterung: Array von Ereignissen und entsprechender Eintrittsszeit, sortieren nach letzterer.
Variante: Aktoren (z.B. ein Space-Invader), der selbst zeitliche Ereignisse verwaltet:
class Actor():
def __init__(self, helper):
self.helper=helper
self.nextEvent = time.ticks_ms()+whatever
def step(self):
if self.nextEvent<=time.ticks_ms():
# Tu was
Im Game loop sähe das dann so aus:
actors = [.....] # Liste von Aktoren
while True:
for i in range(len(actors)):
actors[i].step()
if time.ticks_ms()>= nextEvent:
# bla bla etc.
====== Auswerten von Knöpfen / Joysticks ======
* Vorheriger Zustand der Knöpfe, Zeit seit letzer Änderung speichern.
* Je nach Zustandsänderung und vergangener Zeit, Ereignis auslösen.
Eine Kapselung in eine Klasse wäre denkbar. Eine Methode wird permanent aufgerufen; darin werden die physikalischen Knöpfe ausgewertet. Eine weitere Methode liefert ein Array mit Ereignissen, falls denn welche aufgetreten sind.