Zeit zurückdrehen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Zeit zurückdrehen

    Hallo zusammen,
    ich habe mahl eine Frage, ihr kennt doch bestimmt Prince of Persia da kann mann die Zeit auch zurück drehen.
    Wie kann ich das machen? Aber das mann max. 10 Sek zurück drehen kann.
  • Du musst dir die position von allen objekten vor 10 sekunden merken.
    das machst du jede sekunden und wenn du die zeit zurückdrehen willst stellst du einfach alle objekte wieder so wie du es gespeichert hast.
    PI 0%(IN PROGRESS)
    [IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII]
    [IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII]

    Engine : 0.0 %
    KI : 0.0 %
    Grafik : 0.0%
    Sounds: 0.0 %
    Multiplayer: 0.0%
  • hidiho^^
    naja dieses script verbraucht echt sau viel speicher
    denn JEDE variable muss dann nochmal in einen array verpackt werden und verbraucht dann nochmal 100x mehr speicher
    es wäre jetzt echt überhaupt nicht sinnvoll sowas zu machen
    wenn der gm mal besser wird könnte man es nochmal versuchen
    oder ich überlege ob man das script vielleicht irgendwie ändern kann
    grad ist mir die idee gekommen ob man anstatt arrays vielleicht eine externe datei benutzt die dann ausgelesen wird
    mal sehn was die zukunft so bringt^^
    Die Schönheit liegt im Auge des Betrachters :D
  • RE: Zeit zurückdrehen

    Original von Xivilay
    Hallo zusammen,
    ich habe mahl eine Frage, ihr kennt doch bestimmt Prince of Persia da kann mann die Zeit auch zurück drehen.
    Wie kann ich das machen? Aber das mann max. 10 Sek zurück drehen kann.


    Es kommt vor allem sehr darauf an, was für eine Art Spiel es ist und was man alles machen kann. Je nachdem muss man sich da ernsthaft hinsetzen und ausklügeln, welche Tricks man verwendet.
    Du könntest zB wirklich, wie bereits erwähnt, im Sekundentakt die einzelnen Positionen speichern. Das würde halbwegs Performance bieten, wäre aber verdammt ungenau und könnte zu Fehlern kommen.
    Die Methode von Andy, ist da definitiv besser, da sie (soweit ich weiß) jeden Step speichert. Aber die Performance kannst du abschreiben.
    Eine weitere Möglichkeit wäre, zu speichern, wann vom Spieler welche Aktion ausgeführt wird. Das erfordert zwar sicher noch mehr Kenntnisse, als die Methode von Andy, wäre aber sehr sparsam. Bei den Gegnern müsstest du dir dann aber überlegen, was das beste ist - wie gesagt, das ist davon abhängig, was es für ein Spiel und wie gut die Ki ist.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von mauge ()

  • RE: Zeit zurückdrehen

    @ bigmek
    Wenn ich jede Sekunde speichere funktioniert das auch nicht!
    Da wenn mann die Zeit zurückdreht mann auch sehen soll wie alle Aktionen Rückwerts
    ausgevürt werden, und wenn ich das jede Sekunde mache ruckelt das total!

    @mauge
    Es ist ein sehr großes Spiel und Heißt Time War.
    Es ist ein 2D Shooter mann schlüpft in die Rolle eines Kriegers aus der Zukunft.
    In der Zukunft kann mann überral Zeitmaschienen kauffen das, das zum total Chaos fürt ist ja
    klar. Der Krieger bekommt bei bestimmten Zeitverschiebungen immer eine neue Superkarft
    hinzu... ach ich habe schon viel zu viel erzählt natürlich werde ich es hier zum Download anbieten.

    @ all
    also mann soll sehen wie sich alle Animationen rückwerts bewegen, muss ich da etwa alle
    Animationen neu machen?
  • RE: Zeit zurückdrehen

    Original von Xivilay
    @mauge
    Es ist ein sehr großes Spiel und Heißt Time War.
    Es ist ein 2D Shooter mann schlüpft in die Rolle eines Kriegers aus der Zukunft.
    In der Zukunft kann mann überral Zeitmaschienen kauffen das, das zum total Chaos fürt ist ja
    klar. Der Krieger bekommt bei bestimmten Zeitverschiebungen immer eine neue Superkarft
    hinzu... ach ich habe schon viel zu viel erzählt natürlich werde ich es hier zum Download anbieten.


    Du brauchst mir nicht erzählen, was für ein Spiel das ist. Ich werde dir die Arbeit nicht abnehmen. Viel mehr wollte ich dir klarmachen, dass du dich damit intensiv beschäftigen und selbst eine Lösung finden musst.

    Und natürlich musst du dafür keine neuen Animationen anfertigen! Du musst sie einfach nur rückwärts abspielen.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • Original von Merko
    Nein, das Thema ist glaube ich zu komplex. Wenn du jetzt vor deinem PC sitzt und nicht weißt, was ein Array ist, wirste hier net weiterkommen. Wie gesagt. Du könntest als alternative alles, was die Objekte machen inner Textdatei reinspeichern und wieder auslesen ;)


    Das ist zwar noch langsamer, aber unterstreicht auch die Komplexität des Vorhabens.
    @xivilay: Ohne dir böses zu wollen, aber ich rate dir davon ab. Ich weiß, das ist enttäuschend, aber es gibt so viele andere nette Spielereien, die du stattdessen verwenden könntest!
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • Ich hatte mal ein example irgendwo heruntergeladen. Stimmt schon. Klappt gut mit Array.
    Ist aber schon ein bissle aufwändig. Vor allem musst du jedes Object und jede var mitschreiben.
    Psst, du .... ja du, ich habe da was gutes:
    1. Die Mausbewegen!
    2. Leertaste drücken halten und Maus in ruhe lasen.
    3. Gucken!
    Is echt cool. :D

    Kann man natürlich auch für Objecte nutzen!
    Ist deine Frage hiemit gelöst?
    Dateien
    57 6F 77 2C 20 64 61 73 20 68 61 73 74 20 64 75 20 67 61 6E 7A 20 61 6C 6C 65 69 6E 20 67 65 73 63 68 61 66 66 74 2E 20

    Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von DanielGM61 ()

  • RE: Zeit zurückdrehen

    Original von Xivilay
    @ bigmek
    Wenn ich jede Sekunde speichere funktioniert das auch nicht!
    Da wenn mann die Zeit zurückdreht mann auch sehen soll wie alle Aktionen Rückwerts
    ausgevürt werden, und wenn ich das jede Sekunde mache ruckelt das total!


    Da könnte man eine lineare Interpolation machen:

    Nehmen wir an, der Raum läuft bei 30 FPS und du speicherst die (x,y)-Koordinaten alle 30 Schritte (=1 Sekunde ohne Slowsowns) ab.
    Die Figur war bei Zeitpunkt 0 bei (0,0) und bei Zeitpunkt 30 bei (30, 0)
    (ich machs mal einfach ;) )

    Der Spieler will jetzt zu Zeitpunkt 10 zurück. Die Figur wäre dann bei Position
    ( (30-0) * 10/30, (0-0) * 10/30)


    Dadurch werden die Bewegungen flüsiger, auch wenn sie wahrscheinlich auch nicht ganz mit der Ursprungbewegung übereinstimmen. Das Ganze wird ungenauer, je schneller die Figur die Richtung ändern kann. Ach ja, und natürlich muss das für jede kontinuierliche Änderung gemacht werden, z.B. Gegnerbewegung, bewgliche Plattformen, Schüsse,...

    Aber ich stimme allen anderen zu: Wenn du ein Anfänger bist, insbesondere im Programmieren an sich, würde ich davon erstmal die Finger lassen. Es ist einfach viel schwieriger, als es aussieht.
    Ein ganz normales Jump'nShoot ist auch ganz witzig. :)
    Man kann das dann ja für nen 2. oder 3. Teil einbauen.
  • RE: Zeit zurückdrehen

    Original von Xivilay
    @ all
    also mann soll sehen wie sich alle Animationen rückwerts bewegen, muss ich da etwa alle
    Animationen neu machen?


    falls nur die animiation rückwärts sein soll:
    image_speed=-1
    oder halt mehr/weniger
    Aktuelles Projekt: Aufbau - Strategiespiel.
    Aktueller Entwicklungsschritt: Planung | Grundengine entwickeln.

    Wichtig ist nicht, besser zu sein als alle anderen.
    Wichtig ist, besser zu sein als du gestern warst.





  • Ähm, Zwiebelmann ... Du meinst image_index=-1! Gamer meinte aber image_speed=-1!
    Hast zwar nicht seht viel mit Zeit zu tun, aber so kann man das Sprite rückwärts ablaufen lassen.
    Ein GML-Anfänger versucht einen GML-Fortgeschritten etwas beizubringen :D ?
    Spass! Probier es doch mal:
    Mach ein Sprite mit vielleicht 10 images. Schreibe oder male Zahlen von 1-10 hinein.
    Erstelle ein Object mit image_speed=0.1 (damit es nicht zu schnell geht) ins - Event.
    Dann noch im - Enter -Event image_speed=-0.1;
    Dann wirst du es sehen.
    57 6F 77 2C 20 64 61 73 20 68 61 73 74 20 64 75 20 67 61 6E 7A 20 61 6C 6C 65 69 6E 20 67 65 73 63 68 61 66 66 74 2E 20
  • Ich habe selbst so ein Ding. Wie wärs wenn du einfach alle Variablen inne DS list speicherst und beim rückspulen wieder ausliest und die letzten Einträge löscht? Wird auf die Anzahl etwas viel, lohnt sich aber. In meinem Spiel Charisma - MR siehe Trailer im Ressourcenbereich zu "Suche Leveldesigner" sieht man das auch am Ende.