Pygame - implementierung tilebasierte Animation

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
Wendigo
User
Beiträge: 7
Registriert: Montag 2. August 2010, 08:09

Hallo Community :D
Frisch angemeldet und kommt gleich schon mit ner Frage an. ^^

Ich beschäftige mich gerade mit Animationen (Tilebasiert) in Pygame und mich würde einmal interessieren welche Art von Timing ihr als "Profis" für den Durchlauf der einzelnen Frames verwendet.
  • Zum einen gibt es da ja die Kopplung an die fps, indem man mittels clock.tick die verstrichene Zeit ermittelt und den berechneten Wert der entsprechenden Updatefunktion übergibt.
  • Ein weiterer Weg der mir einfällt wäre einfach das Event queue zu verwenden und ein zeitgesteuertes "next_frame" event per pygame.time.set_timer zu erzeugen.
Was haltet ihr für die bessere Methode? Sind beide wege gleich genau?

Vielen Dank schon mal für eure Antworden :)
yipyip
User
Beiträge: 418
Registriert: Samstag 12. Juli 2008, 01:18

Hallo Wendigo,
zu diesem Thema fand ich http://gafferongames.com/game-physics/f ... -timestep/ eigentlich recht erhellend. Den 3. Ansatz (nicht den 4. mit der Interpolation) habe ich deshalb auch gleich in http://www.python-forum.de/viewtopic.ph ... 96#p148796 verwendet.

:wink:
yipyip
Wendigo
User
Beiträge: 7
Registriert: Montag 2. August 2010, 08:09

Danke für die Links, die Erläuterung ist echt hilfreich :)
Allerdings war mein Frage eher ob ich mit für diese Art der Animation entscheiden sollte oder eben halt einfach die Userevents im Eventqueue platziere. :K
yipyip
User
Beiträge: 418
Registriert: Samstag 12. Juli 2008, 01:18

Also den Timerevent mit time.set_timer() habe ich noch nicht ausprobiert. Wenn man einfach nur bestimmte Aktionen zu festgelegten Zeitpunkten ausfuehren will und sichergestellt ist, dass so ein Event auch rechtzeitig aus dem Queue wieder ausgelesen werden kann, koennte man auch diese Methode verwenden. Bei allem anderen (z.B: Ein Objekt bewegt sich mit einer gewissen Geschwindigkeit ueber den Bildschirm) tendiere ich zu den Methoden, die die Zeit zwischen 2 Frames immer wieder neu berechnet, denn diese kann ja variieren.
Im Zweifelsfall muss man ausprobieren, was fuer die jeweilige Anwendung geeigneter erscheint.

:wink:
yipyip
Antworten