Tworzę platformówkę 2D, w której gracz może nacisnąć przycisk i zrestartować poziom, tylko jego poprzednia postać będzie również biegać w tym samym czasie, jakby cofały się w czasie.
Wiem, że inne gry już to robiły, i pomyślałem o tym, aby postać miała zestaw działań (bezczynność, skakanie, chodzenie w lewo itp.), A następnie wykryła zmiany w tych działaniach i zalogowała je lista wraz z czasem gry. Kiedy więc potrzebuję, aby postać ponownie uruchomiła poziom samodzielnie, mogę po prostu przejrzeć listę, zmieniając jej działania we właściwym czasie.
Czy to najlepszy sposób, aby to zrobić? Czy ktoś ma w tym jakieś doświadczenie?
Dzięki.
2d
architecture
time-travel
Woody Zantzinger
źródło
źródło
Odpowiedzi:
EDYTOWAĆ:
Zobacz odpowiedź @ Bluescrn na to pytanie; omawia słabości w odtwarzaniu elementów sterowania, a nie wektory ruchu lub pozycję.
-
Jesteś na dobrej drodze. Oto podejście, którego użyłbym:
Kontrolery
Utwórz klasę kontrolera, która odbiera dane z klawiatury i przekazuje je twojej postaci. Jednak należy również mieć zapis kontrolera dokładnie wtedy, gdy naciśnięto znaczące klawisze (np. Strzałki, skok itp.) I kiedy zostały zwolnione. Przechowuje takie informacje:
Kontroler ma dwa tryby:
Postacie
Kiedy twoja postać postaci zostanie zbudowana, sama tworzy nowy kontroler. Postać może znajdować się w jednym z dwóch trybów w dowolnym momencie:
Poziomy
Świeżo rozpoczęty poziom
Kiedy zaczynasz poziom, utwórz pojedynczą postać. Teraz zaczyna się poziom, a gracz robi swoje.
Kiedy czas się resetuje
Po zresetowaniu poziomu wykonaj trzy czynności:
Następnie zaczyna się poziom i gracz robi swoje.
źródło
Jeśli odtwarzasz zarejestrowane dane wejściowe, weź pod uwagę implikacje wszelkich ruchomych / zniszczalnych / interaktywnych obiektów na świecie, które mogły się przenieść lub zmienić stan podczas odtwarzania akcji
Ponadto odtwarzanie danych wejściowych nie będzie działać dokładnie, jeśli gra wykorzystuje zmienny timepep. Może warto rozważyć aktualizację gry o ustalonym czasie (z interpolacją do renderowania zmiennej prędkości klatek)?
źródło
Istnieje wiele tematów, które dotyczą systemów nagrywania / odtwarzania gier itp., Które prawdopodobnie powinny być kluczem do twoich przeszłych przeglądów.
Oto jeden: Jak zaprojektować system powtórek
źródło
Nagrywanie danych z klawiatury może nie być przydatne w twoim przypadku. Możesz jednak wygenerować splajn za pomocą osi czasu. Możesz nawet cofnąć czas, jeśli masz problemy z siłami, które musisz zastosować
źródło