Wie kan ich die Zeit zurückdrehen ?

Posted By: Heracles

Wie kan ich die Zeit zurückdrehen ? - 03/23/12 00:34


Ich denke ihr wißt was gemeint ist.

So wie in Prince of Persia

Der Spieler drückt einen Knopf (egal C ) und solange dieser gedrückt wird , läuft die Zeit rückwärts ap.

Was ist Zeit aus der sicht eines Programmieres und wie nehme ich darauf einflus ?

Ich weiß zwar das Zeit als frames per second ferstanden wird aber das bringt mich bei diesem Problem nicht weiter.

Hoffe ihr könnt mir helfen .


Danke im forraus.

Heracles
Posted By: Damocles

Re: Wie kan ich die Zeit zurückdrehen ? - 03/23/12 05:11

Also Zeit aus Sicht der Thermodynamik ist das Zunehmen von Entropie.
Aus Sicht eines Spieles das Ändern von Informationen in einem
Gewissen Zyklus.

Die klassiche gameloop.

->change State >show State ->loop-back

Du Änderst also die Spielwelt beim Vorranschreiten der Zeit.
Das System wird verändert und die alten Zustände sind vergessen.
Deshalb wird Dir auch keine der Zeitfunktionen von acknex hier helfen, die ja nur die "positiven" Zeitschritte beeinflussen.
Denn um die Zeit zurück zu "drehen" muß das Spiel einen
Zustand aus der Vergangenheit annehmen.

Das einfachste (jedes Spiel hat ja einen Zeit-zurückdreh Mechanismus)
ist Speichern -> Laden. Aber das ist ja nicht das Ziel hier.

Du könntest den Zustand des Spieles in bestimmten Zeitschritten
(vor allem die Wichtigen Sachen wie Spielerchar, Gegner, Effekte) aufzeichnen.
Bei einem Zeitsprung mußt zu den alten Zustand wieder einsetzen.

Cooler sieht es natürlich aus wenn Du eine Interpolation zwischen dem aktuellen und dem vorherigen Zustand machen kannst.
-> Oder man Zeichnet halt für jeden Frame jedes Positions und Animationsattribut der Entities auf,
und spielt dann diese Frame-Positionsdaten rückwärts ab.

Hm, versuch mal als erstes folgendes:
Schreibe eine Funktion die folgende Sachen alle 10 Sekunden speichert:

#x,y,z,pan,tilt,roll,animationsframe

des Spieler
und der Gegner

Und dann versuche auf Knopfdruck den zustand des Spielers
mit den gespeicherten Werten zu überschreiben.

Probematischer wirds bei der KI oder der Statemachine des Spielers im allgemeinen.
Da muß man auch den alten Zustand wieder einsetzen können.

naja, ein paar Gedanken dazu...

Posted By: Espér

Re: Wie kan ich die Zeit zurückdrehen ? - 03/23/12 09:49

PoP dreht die zeit auch nicht wirklich zurück.
Es speichert koordinaten von allen Objekten im Sichtfeld in eine art array struct.
Sobald man die Zeit "zurückdreht", werden die Informationen von hinten nach vorn ausgelesen. Dabei werden die Koordinaten und Aktionen verglichen und angepasst. Der Rücklauf in PoP ist keinesfalls flüssig. Schaus dir genauer an, dann erkennst du kleine Bewegungssprünge.
© 2024 lite-C Forums