Jaka jest matematyka fioletowego lasera „Raiden 2”?

15

Na ścieżkę lasera wpływ mają dane wprowadzane przez użytkownika oraz wrogowie obecni na ekranie. Oto wideo, o godzinie 5:00 pokazany jest dany laser: Raiden II (PS) - 1 Loop Clear - Part 2

AKTUALIZACJA

Oto test z użyciem Inkscape, statek znajduje się na dole, pierwszych 4 wrogów jest atakowanych przez plazmę. Wydaje się, że istnieje pewien wzór. Najpierw przesunąłem statek, potem uchwyt, tworząc kąt 45 °, a następnie próbując dopasować się do łuku, znalazłem wzór równoległych uchwytów i kontynuowałem tak, aż dotarłem do ostatniego wroga. wprowadź opis zdjęcia tutaj

Aktualizacja, 26.05.2012 : Rozpocząłem projekt XNA przy użyciu Beziers, wciąż jest trochę pracy, zaktualizuję pytanie w przyszłym tygodniu. Bądźcie czujni !

wprowadź opis zdjęcia tutaj

Aktualizacja: 30.05.2012 : Wygląda na to, że używają krzywych Béziera, myślę, że będę w stanie odtworzyć / naśladować plazmę takiego stopnia. Są dwa nowe tematy, które odkryłem od ostatniego razu: długość łuku , zjawisko Runge , po pierwsze, należy pomóc w zapewnieniu ruchu liniowego nad krzywą Béziera, po drugie, w optymalizacji liczby wierzchołków. Następnym razem umieszczę film, abyś mógł zobaczyć postęp 8-)

Aybe
źródło
2
Cóż, to pewnego rodzaju splajn. Prawdopodobnie Krzywa Béziera . Nie jestem pewien, czy na to pytanie odpowie ktoś inny niż pierwotni programiści. Jeśli próbujesz odtworzyć ten efekt, powinieneś pokazać nam, co masz i powiedzieć, że nie działa.
MichaelHouse
2
Nie mam pojęcia, ale ma w sobie sporo radykalizmu.
Hackworth
1
Rozgrywając niezdrową ilość Raiden, mam wątpliwości, że pasta do zębów jest jakąkolwiek krzywą o zamkniętej formie. Zawsze wydawało się, że zachowuje sporo pamięci. Podejrzewam, że robi jakieś patche z obowiązkowym promieniem skrętu.
@ Byte56: Devs / fani Shmup są oddani, byłbym zaskoczony, gdyby nie było to gdzieś udokumentowane / poddane inżynierii wstecznej.
3
Wygląda na to, że umieszcza segmenty pojedynczo na wyjściu ze statku, z maksymalnym zakrętem, i każdy segment albo odwraca się w kierunku wrogów, jeśli są w pobliżu lub w kierunku ruchu statku.
Kevin Reid

Odpowiedzi:

6

Właśnie stworzyłem coś, co może ci pomóc. To była odpowiedź, aby pomóc komuś na forach GLBasic.

Oto link do forum z moją sugestią: Random Textured Rolling Hills

Jest napisane w GLBasic, ale starałem się, aby było łatwe do odczytania, więc powinno być łatwo przekonwertowane na dowolny język.

Aby użyć go do swoich potrzeb, musisz wygenerować dane / punkty splajnu. Zamień punkty „wzgórza” w moim przykładzie na punkty splajnu. Wystarczy w jakiś sposób dodać efekt animacji / migotania. Może przypadkowa zmiana tekstury.

Prawdziwa „magia” dzieje się w mojej funkcji „AddPoint”:

FUNCTION AddPoint: h AS THillPoint
    DIMPUSH self.points[], h

    // Is this the very first data point?
    IF LEN(self.points[]) = 1
        self.points[0].pu.Set(0, self.points[0].pm.y - self.texture_ht_up)
        self.points[0].pd.Set(0, self.points[0].pm.y + self.texture_ht_dn)
        RETURN
    ENDIF

    ALIAS h0 AS self.points[-2]  // Reference to the 2nd last point
    ALIAS h1 AS self.points[-1]  // Reference to the last point
    LOCAL angle#
    LOCAL v1 AS TVector
    LOCAL v0 AS TVector

    // Calculate 'p2' of HillPoint - form rectangle with previous point
    angle = ATAN(h1.pm.y - h0.pm.y, h1.pm.x - h0.pm.x)  -90// Angle of the two points

    v1.x = COS(angle) * self.texture_ht_up + h1.pm.x
    v1.y = SIN(angle) * self.texture_ht_up + h1.pm.y
    v0.x = COS(angle) * self.texture_ht_up + h0.pm.x
    v0.y = SIN(angle) * self.texture_ht_up + h0.pm.y
    h0.pu = h0.pu.AverageWith(v0)
    h1.pu.Copy(v1)

    v1.x = COS(angle) * -self.texture_ht_dn + h1.pm.x
    v1.y = SIN(angle) * -self.texture_ht_dn + h1.pm.y
    v0.x = COS(angle) * -self.texture_ht_dn + h0.pm.x
    v0.y = SIN(angle) * -self.texture_ht_dn + h0.pm.y
    h0.pd = h0.pd.AverageWith(v0)
    h1.pd.Copy(v1)
ENDFUNCTION

Tutaj obliczam końcowe quady / wielokąty, które kreślą duszka wzdłuż linii.

Oto końcowe wyniki: wprowadź opis zdjęcia tutaj

Po włączeniu szkieletu wielokątów: wprowadź opis zdjęcia tutaj

Doug.McFarlane
źródło
1
Świetnie, popatrzę na to. BTW, podany link jest uszkodzony.
Aybe
3
Wydaje mi się, że link nie jest zepsuty ...
doppelgreener
Właśnie sprawdziłem teraz link Random Textured Rolling Hills, przynosi mi błąd 404.
Aybe
1
Dziwne. To wciąż działa dla mnie. Ale oto podstawowy link: glbasic.com/forum/index.php?topic=8118
Doug.McFarlane
Zepsuty dla mnie, próbowałem strony głównej, pokazuje „To działa!” i to wszystko ... dziwne.
Aybe