Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== Game loop ====== <code python> 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 </code> Erweiterung: Array von Ereignissen und entsprechender Eintrittsszeit, sortieren nach letzterer. Variante: Aktoren (z.B. ein Space-Invader), der selbst zeitliche Ereignisse verwaltet: <code python> 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 </code> Im Game loop sähe das dann so aus: <code python> actors = [.....] # Liste von Aktoren while True: for i in range(len(actors)): actors[i].step() if time.ticks_ms()>= nextEvent: # bla bla etc. </code> ====== 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. efinf/blcks2017/gameloop.txt Last modified: 2018/03/27 13:44by Ivo Blöchliger