Які математичні показники стоять за фіолетовим лазером "Raiden 2"?


15

На шлях лазера впливає введення користувача та вороги, наявні на екрані. Ось відео, о 5:00 хвилині показаний відповідний лазер: Raiden II (PS) - 1 цикл очищення - частина 2

ОНОВЛЕННЯ

Ось тест з використанням Inkscape, корабель на дні, перші 4 вороги націлені на плазму. Здається, є якась закономірність. Спершу я перемістив корабель, потім рукоятку з нього, щоб утворити кут 45 °, потім, намагаючись підігнати криву, я знайшов візерунок паралельних ручок і продовжував так, поки не дійшов до останнього ворога. введіть тут опис зображення

Оновлення, 26.05.2012 : Я розпочав проект XNA за допомогою безізерів, ще потрібна робота, оновіть питання наступного тижня. Будьте в курсі!

введіть тут опис зображення

Оновлення: 30.05.2012 : Насправді здається, що вони використовують криві Безьє, я думаю, я зможу повторити / імітувати плазму такого класу. З минулого разу я виявив дві нові теми: довжина дуги , явище Рунге , перша - допомогти в лінійному русі по кривій Безьє, друга - допомогти оптимізувати кількість вершин. Наступного разу я поставлю відео, щоб ви могли бачити хід 8-)


2
Ну, це якийсь сплайн. Можливо, крива Безьє . Я не впевнений, чи відповідає на це питання хтось, крім оригінальних розробників. Якщо ви намагаєтесь знову створити цей ефект, ви повинні показати нам, що у вас є, і сказати, що з цим не працює.
MichaelHouse

2
Поняття не маю, але за це є штраф у розмірі радикалу.
Хакворт

1
Зігравши нездорову кількість Рейдена, я сумніваюся, що зубна паста - це будь-яка крива закритої форми. Це завжди здавалося, що зберігає неабияку пам’ять. Я підозрюю, що це робить якийсь шлях із обов'язковим радіусом повороту.

@ Byte56: Shmup Devs / вентилятори присвячені, я був би здивований, якби це не було документоване / зворотне проектування десь на сьогодні.

3
Схоже, він розміщує сегменти по черзі, виходячи з корабля, з максимальним вигином, і кожен сегмент або повертається до ворогів, якщо такі є поруч, або в напрямку руху корабля.
Кевін Рейд

Відповіді:


6

Я просто створив щось, що може вам допомогти. Це було у відповідь допомогти комусь на форумах GLBasic.

Ось посилання на форум із моєю пропозицією: Випадкові текстуровані Rolling Hills

Це написано в GLBasic, але я намагався зробити його легким для читання, тому його слід легко перетворити на будь-яку мову.

Щоб використовувати його для своїх потреб, вам потрібно буде генерувати ваші сплайні дані / точки. Замініть точки "пагорба" у моєму прикладі на точки сплайну. Вам потрібно було б лише якось додати ефект анімації / мерехтіння. Може бути випадковим зрушенням текстури.

Справжня «магія» відбувається в моїй функції «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

Тут я обчислюю кінцеві квадрати / багатокутники, які ділять спрайт по лінії.

Ось кінцеві результати: введіть тут опис зображення

І з включеним каркасом полігонів: введіть тут опис зображення


1
Чудово, я на це подивлюсь. До речі, посилання, яке ви надали, порушено.
Айбе

3
Здається, посилання для мене не порушено ...
doppelgreener

Я щойно перевірив посилання випадкових текстурованих Rolling Hills, це приносить мені помилку 404.
Айбе

1
Дивно. Це все ще працює для мене. Але ось основне посилання: glbasic.com/forum/index.php?topic=8118
Doug.McFarlane

Зламаний для мене, я спробував домашню сторінку, на ній видно "Це працює!" і це все ... дивно.
Айбе
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.