Sofortwiederholung

  • GM 8

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

  • Sofortwiederholung

    Hey Leute!

    Ich wollte mal so in den Raum fragen, ob es mit Game Maker eine Möglichkeit gibt, eine Sofortwiederholung wiederzugeben?

    Beispielsweise so, dass man nach einem Kill ins Pausenmenü wechselt, auf einen Button Sofortwiederholung klickt und dann die letzten 15 Spielsekunden (oda so!) sieht.

    Eventueller "Schnick-Schnack" wären dann neben den Buttons "Play", "Pause", "Stopp" noch weitere wie "Wiederholung mit halber/doppelter Geschw. wiedergeben", usw.

    Mit schnellen Antworten wäre mir wirklich SEHR geholfen! :D

    Mit den besten Grüßen,

    NONO120. :)
  • Also ich will jetzt nichts falsches sagen aber soweit ich das verstanden hab dürfte das sehr kompliziert werden :o
    Es wäre vielleicht möglich, indem du jede Bewegung von jedem Objekt irgendwie speicherst und sie dann lädst.

    Hoffe du verstehst was ich meine

    mfG xgames
    Grüße Stupe
  • Hier kriegste mal ne kleine Lektüre:

    xgamesproduction hat da ja schonmal den richtigen Ansatz geliefert.
    Man könnte es auch mit Surfaces machen oder mit der AppCam, allerdings kann man dann die
    Kamera-Einstellung nicht verändern und bei langsamen PCs könnte es zu Performance-Problemen kommen.


    Also wenn du von einem 2D-Spiel ausgehst, dann machst du am besten eine liste,
    in die du dann 5-10 mal pro sekunde die Daten x,y,direction,image_index,sprite_index einträgst.

    Du trägst in diese List die Daten so ein (Jede Zahl steht für 5 Stellen):
    1,2,3,...,14,15
    Dann, wenn du bei 15 bist, gehst du wieder von 1 los.
    (Lass eine Variable "mitlaufen" anhand deren du überprüfst, wo du gerade bist)
    Dann ist die Position nach der aktuellen in der Liste das, was vor 15 Sekunden passiert ist.
    Das ist hoffentlich alles verständlich.

    Wenn das alles funktioniert, machst du dich daran eine Liste zu schreiben, die etwas
    anderst funktioniert. Die zeichnet Events auf wie Waffenwechsel, Schuss, etc. Einmalige Dinge einfach.
    Sie zeichnet auf: Events (Also soviele Einträge, wie du brauchst, aber bitte nicht 20 oder so, das hängt
    dann vielleicht mal) und Spielzeit. Nach 15 Sekunden Spielzeit fängt sie wieder von vorne an.
    Für die Spielzeit kannst du, denke ich, die Zeitfunktionen für die
    Computerzeit vom GM benutzen, sollte keine großen Probleme geben.

    Dann, wenn das alles klappt, lässt du bei Tod des Spielers Außerhalb des normalen Spielfeldes
    ein zweites Spielfeld erstellen, das alles enthält, was zum Todeszeitpunkt des Spielers dar war
    (Außer Kugeln, Splatter, Partikel, etc.). Die Kamera richtet sich dann auf dieses Feld. Das echte
    Feld sollte dann Draw-Events nicht mehr ausführen, um unnötige Performance-Probleme
    zu vermeiden.

    Wenn du soweit bist, dann kommst du auf den Rest sicherlich selbst. Ich weiß nicht,
    wie ich dich einschätzen soll, aber das solltest du schon packen, als Fortgeschrittener^^

    EDIT: Ja, es ist performant, ich hab das alles gut überlegt. Lediglich bei den Zeitfunktionen bin ich mir nicht sicher.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Shapow ()

  • @Shapow

    Danke einmal für deine Bemühungen!

    Ich habe mir soetwas in der Art eh auch schon gedacht, wollte aber zuerst einmal nachfragen, ob es nicht auch andere Lösungen geben würde, da mit all diesen Listen das ganze Programm (aus der Sicht des Programmiers) sehr unübersichtlich wird und diese Methode meiner Meinung nach ziemlich Fehleranfällig ist! (Ich hasse nichts mehr, als in endlosen Listen und Programmcode nach Fehlern zu suchen ;) )

    Wäre über weitere Vorschläge hocherfreut!!!!! :D

    LG NONO120. :)
  • Also eine weitere Möglichkeit die ich mir vorstellen könnte wäre es alle 5 Sekunden oder so, den Stand des Spiels zu speichern . Dies kann entweder über die Funktion im GM selbst geschehen doer du machst dir ein eigenes System. Außerdem musst du im Spiel die ganze Zeit die EIngaben des Users aufzeichnen. D.h. wenn nur die Pfeiltasten verwendet werden, dann einfach jeden step das Drücken der Tasten aufnehmen.

    Soll das Spiel nun an einer Stelle gestartet werden, wird einfach das passendste Save-Game genommen (damit gäbe es bei einer Wiederholrate von 5 Sekunden, eine maximale Abweichung von 2.5 Sekunden von deiner Vorgabe (15 Sekunden). Du kannst diese Frequenz natürlich auch erhöhen).
    Anschließend werden nicht die Objekte manuell gesetzt wie in den anderen Vorschlägen sondern die Tastenschläge werden einfach simuliert (dafür gibt es GM befehle). Dabei musst du auch beachten die User-Befehle jezt zu ignorieren. Aber auch diese kann man praktischer Weise sozusagen "löschen" mit keyboard_clear oder so.
    Dies funktioniert aber nicht wenn irgendwelche Zufallswerte das Spiel bestimmen! Diese müsstest du beim Starten des Spiels vorrausberechnen und dann einfach abrufen.

    Für Unterschiedliche Geschwindigkeiten dann einfach das Spiel in diesem Zeitraum mit doppeltem bzw. halben Roomspeed laufen lassen (letzteres würde dann nicht sonderlich schön aussehen, außer wenn du die Normal-Geschwindigkeit auf 60 setzst).

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von DragonGamer ()