Огляд фізики в іграх Sonic. Частини 7 і 8: пружини і штуковини, супершвидкості



Продовження циклу статей про фізики в іграх про Соника. В цьому пості розглядаються відштовхування персонажів від різних ігрових об'єктів та їх суперздатності.

Посилання на інші частини серії:
Частина 1: тверді тайли
Частина 2: біг
Частини 3 і 4: стрибки і обертання
Частини 5 і 6: втрата кілець і знаходження під водою

Частина 7: пружини і штуковини
Пружинні майданчика

Червоні пружинні майданчики надають Сонику швидкість 16, а жовті — швидкість 10. В залежності від напрямку майданчика (вгору або вниз), значення негативне або позитивне, і відповідно швидкості по осі Y надається значення. Якщо пружинна майданчик спрямована вліво або вправо, значення швидкості негативне або позитивне, відповідно швидкість по осі X прирівнюється до цього значення. Вертикальні майданчика не впливають на швидкість X, як і горизонтальні майданчики не впливають на швидкість Y.



Діагональні пружинні майданчика

У Sonic the Hedgehog (16-bit) немає діагональних пружинних майданчиків. Однак вони є в Sonic 2 (16-bit), 3, Knuckles і CD. У Sonic 2, 3 і Knuckles вони працюють однаково, але в Sonic CD принцип відрізняється.

у Sonic 2, 3 і Knuckles діагональна пружина встановлює швидкостей X і Y значення пружинної майданчики з відповідним знаком. Тому пружина, спрямована вгору-вправо надає швидкість Y, рівну -16 і швидкість X, дорівнює 16. Проблема цього методу в тому, що технічно Соник відштовхується діагонально швидше, ніж горизонтально або вертикально. Це тому, що розробники не подбали врахувати косинуси і синуси.

У Sonic CD вони виправилися. Зручно, що абсолютні значення синуса і косинуса кута в 45 градусів однакові, тому потрібно тільки одне значення. Швидкість стає рівною 11.3125 для червоних пружин і 7.0703125 для жовтих.

Блокування горизонтального управління

Коли Соник відскакує від горизонтальної пружини (червоної або жовтої), він не може гальмувати або іншим способом впливати на швидкість X протягом 16 циклів. Движок досягає цього, встановлюючи ту ж блокування горизонтального управління, що і при скачуванні з крутих схилів (в S3 і Knuckles байти $32-33 є таблицею станів об'єкта гравця). Навіщо блокувати горизонтальне управління? При зіткненні з пружиною гравець швидше за все натискає хрестовину у напрямку пружини, і це може призвести до відштовхування Соника в анімації гальмування. Тимчасове ігнорування введення — це швидке і елегантне рішення.

Анімація

У разі пружинної майданчики, спрямованої вгору, коли Соник втрачає всю швидкість, спрямовану вгору, він переходить в анімацію ходьби. Кадри цієї анімації змінюються кожні 8 циклів.

У разі будь-якої з діагональних пружинних майданчиків Соник взагалі не переходить анімації ходьби на повітрі. Він зберігає анімацію «штопора» (об'ємне обертання), кадри якої змінюються раз на 5,5 циклу.

Повітряні кульки

При зіткненні Соника з повітряними кульками на рівнях Carnival Night Zone його швидкість Y встановлюється рівною -7, незалежно від кута зіткнення. Швидкість X не змінюється.



Бампери

Бампери у Spring Yard Zone надають Сонику швидкість X, рівну 7*cos(p), і швидкість Y 7*-sin(p), де p — це кут між центрами бампера і Соника. Швидкість встановлюється незалежно швидкості Соника до зіткнення з бампером.



Гармати

Гармати в Carnival Night Zone надають Сонику горизонтальну швидкість 16*cos(p), і вертикальну швидкість 16*-sin(p), де p — кут нахилу гармати.



Кришки з пружинами

Червоні кришки з пружинами, які закривають труби в Chemical Plant Zone, працюють як пружинні майданчика, але трохи сильніше, ніж жовті майданчики. При зіткненні вони надають Сонику швидкість Y, рівну -10.5.



Вертушки

Чорні вертушки, які розганяють їжака вперед в Chemical Plant Zone встановлюють швидкість X дорівнює 16. Однак вони не уповільнюють його, якщо він вже рухається швидше.

Ліфти в небі

Ліфти в небі на рівнях Hill Top Zone переміщаються зі швидкістю X, рівній 2, і швидкістю Y, що дорівнює 1.



Гриби

Гриби в Mushroom Hill Zone працюють як пружинні майданчика, проте кожен подальший відскік стає вище попереднього (до трьох відскоків). Перший відскік надає швидкість Y -6.5, другий -7.5, а третій -8.5.



Руйнування стін

У Sonic 1, 2, 3 і Knuckles для пробивання зруйнованих стін при обертанні абсолютна швидкість X персонажа повинна перевищувати 4.5 (за винятком персонажа Knuckles, який кришить стіни при зіткненні, при цьому йому не обов'язково обертатися). Зіткнення з такими стінами не впливають на швидкість X.

Однак коли Knuckles руйнує стіни в Sonic 3 і Knuckles, незважаючи на те, що його швидкість X не змінюється, він не рухається в кадрі, в якому вдаряє стіну. Те ж саме справедливо для пробивання Соніком стіни при обертанні в Sonic 3 і Knuckles.

У Sonic CD, обмеження по швидкості X прибрано. Соник може пробивати руйнуються стіни, просто стрибаючи поруч з ними або обертаючись на будь-якій швидкості.

Руйновані блоки і камені

Коли Соник застрибує на руйновані об'єкти, такі як камені в Hill Top Zone, блоки в Marble Zone або кришки труб в Chemical Plant Zone, він відскакує від них зі швидкістю Y дорівнює -3. Швидкість X не змінюється.



Частина 8: супершвидкості
Супербыстрые черевики

Примітка перекладача: супербыстрые черевики (Super Fast Shoes) — це бонус збільшення швидкості, діючий 20 секунд і підвищує прискорення і максимальну швидкість Соника. Вибивається з ось таких моніторів:



Мінлива Значення
Прискорення 0.09375
Гальмування
0.5 (не змінюється)
Тертя
0.09375
Максимальна швидкість 12
Прискорення в повітрі
0.1875
Тертя при обертанні
0.046875
Гальмування при обертанні
0.125 (не змінюється)
Примітка: якщо Соник падає у воду, всі ефекти супербыстрых черевик (Super Fast Shoes) обнуляються. «Підводні» змінні повністю їх замінюють. Якщо ви выпрыгнете з води, ефект супербыстрых черевик не повернеться. Схоже, що це відноситься до всіх 5 ігор.

В Sonic 3 і Knuckles темп музичної композиції збільшується в 1.25 рази.

Супер/Гиперсоник

Примітка перекладача: Суперсоник (Super Sonic) — це суперформа персонажа Sonic the Hedgehog. Така форма Соника вперше була застосована в грі Sonic the Hedgehog 2 і в різному обсязі реалізувалася потім у кожній основній грі про Соника. Перетворитися в Суперсоника можна, зібравши всі сім Смарагдів Хаосу, знайшовши не менше 50 кілець і втративши всю захист. Зробивши подвійний стрибок, Соник стає жовтим Суперсоником, це більш швидка і майже невразливу форма Соника. Однак на підтримку цієї форми витрачаються кільця (див. нижче).



В іграх Sonic 3 і Knuckles, після збору всіх Смарагдів Хаосу на спеціальних рівнях можна зібрати сім Суперизумрудов, після чого перетворитися в Гиперформу персонажа. Вона також витрачає зібрані кільця. У цьому режимі персонаж може робити спрямовані подвійні стрибки, знищувати всіх супротивників на екрані і не здатний потонути, на відміну від суперформы.






Змінні відносяться до Суперсонику в Sonic 2 і до Супер — або Гиперсонику в Sonic 3 і Knuckles, за винятком зазначеної змінної.

Мінлива Значення (під водою)
Прискорення
0.1875
0.09375
Гальмування
1
0.5
Тертя
0.046875 (не змінюється)
0.046875 (не змінюється)
Максимальна швидкість
10
5
Прискорення в повітрі
0.375
0.1875
Початкова швидкість стрибка
8
3.5 (не змінюється)
Швидкість стрибка при відпусканні кнопки
4 (не змінюється)
2 (не змінюється)
Тертя при обертанні
0.09375 (0.0234375 в Sonic 3 і Knuckles)
0.046875 (0.0234375 в Sonic 3 і Knuckles)
Гальмування при обертанні
0.125 (не змінюється)
0.125 (не змінюється)
Здатність Hyper Blast (тільки у Гиперсоника)

Коли гравець натискає другий раз кнопку стрибка в повітрі, швидкість Соника по осі X прирівнюється 8, якщо він дивиться вправо, і до -8, якщо вліво, а швидкість по осі Y обнуляється. Якщо гравець утримує «вгору» на хрестовині при натисканні на кнопку, то швидкість Соника по осі Y прирівнюється до -8, а по осі X обнуляється.

Супертейлз, Супер/Гипернаклз

Мінлива Значення (під водою)
Прискорення
0.09375
0.046875
Гальмування
0.75
0.375
Тертя
0.046875 (не змінюється)
0.046875 (не змінюється)
Максимальна швидкість
8
4
Прискорення в повітрі
0.1875
0.09375
Початкова швидкість стрибка
(не змінюється)
(не змінюється)
Швидкість стрибка при відпусканні кнопки
(не змінюється)
(не змінюється)
Тертя при обертанні 0.0234375
0.0234375
Гальмування при обертанні
0.125 (не змінюється)
0.125 (не змінюється)
Швидкість взбіранія (тільки для Наклза)
2
2
Початкова швидкість ковзання (тільки для Наклза)
4 (не змінюється)
4 (не змінюється)
Прискорення ковзання (тільки для Наклза)
0.046875
0.046875
Стенотрясение (Wall Quake) (тільки для Гипернаклза)

Щоб Наклза зміг потрясти екран і знищити всіх ворогів при контакті зі стіною, він повинен ковзати зі швидкістю 4.5 пікселів за цикл або вище.

Відбір кілець

Знаходячись у режимі Супер/Гіпер, персонаж втрачає по одному кільцю кожні 60 циклів, або раз в 1 секунду.

Примітки

Якщо Супер/Гиперперсонаж отримує супербыстрые черевики, розбивши монітор, змінні супербыстрых черевик замінюють змінні режиму Супер/Гіпер, насправді сповільнюючи персонаж (проте максимальна швидкість залишається трохи вище). Це може бути небажано у вашому власному движку.

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

P. S. знову для уважних і допитливих читачів. Тут у перше зашифроване слово закінчується. Слова не відносяться до всесвіту Соника, однак для розшифровки потрібно її знання (втім, гуглением цілком можна обійтися).

image
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.