SPG:Физика колец
Примечание: Данная информация основана на данных, полученных в результате исследования Sonic the Hedgehog (16-бит), но, скорее всего, некоторые части также справедливы для Sonic CD, Sonic the Hedgehog 2 (16-бит), Sonic the Hedgehog 3, и Sonic & Knuckles.
Содержание
Ограничение колец
Когда Сонику наносят удар, из него вылетает столько колец, сколько у него имеется в наличии, но не больше 32.
Разброс
Кольца, вылетающие их Соника, образуют две концентрические окружности по 16 колец каждая. Кольца в первом круге летят быстрее, чем из второго. Вот формула для создания колец, которая может быть приспособлена под любой язык на ваш выбор
{ присвоить t = 0 присвоить angle = 101.25 ; считая, что 0=вправо, 90=вверх, 180=влево, 270=вниз присвоить n = false присвоить speed = 4 пока t меньше числа создаваемых колец { создать кольцо вертикальную скорость кольца приравнять к -sin(angle)*speed горизонтальную скорость кольца приравнять к cose(angle)*speed если n верно { горизонтальную скорость кольца умножить на -1 увеличить angle на 22.5 } приравнять n к -n ; если n правда, то n ложь, и наоборот увеличить t на 1 если t = 16 { приравнять speed к 2 ; на втором круге скорость уменьшается вдвое приравнять angle = 101.25 ; а также сбрасывается угол } } }
А вот эта же формула, но уже конкретно для языка Game Maker Language
<gml> {
var angle, n, sp, t; angle = 101.25 n = -1 sp = 4 t = 0
while t<[количество создаваемых колец] { i=instance_create([x],[у],[имя объекта кольца]) i.vspeed=-sin(degtorad(angle))*sp i.hspeed=cos(degtorad(angle))*sp if n=true { i.hspeed=i.hspeed*-1 angle+=22.5 } n = -n t+=1 if t=16 { sp=2 angle = 101.25 } }
} </gml>
Первые 16 колец движутся со скоростью 4 пикселя/цикл, вторые 16 - 2 пикселя/цикл
Гравитация колец
Сила гравитации колец равна 0.09375. Эта цифра в каждом цикле прибавляется к вертикальной скорости колец.
Физика колец
Когда кольца ударяются о землю, их вертикальная скорость умножается на -0.75. Это разворачивает направление вертикального движения, а также несколько замедляет. Расчет производится после прибавления значения гравитации. Горизонтальная скорость остается такой же.
Когда кольца отталкиваются от земли, они делают это весьма неточно, практически случайно, однако во время игры это незаметно. Вероятно, это сделано для того, чтобы избежать замедления. Похоже, что они проверяют столкновение с землей отнюдь не каждый шаг, от чего они могут иногда проваливаться сквозь землю. Однако это не стоит того, чтобы оно воссоздавалось.
Но здесь же есть более серьезные ограничения, возможно также для избежания чрезмерной загрузки процессора. Кольца не обращают внимания на стены и взаимодействуют только с вертикальными поверхностями. Более того, они проверяют столкновение с поверхностью только когда двигаются вниз (т.е. когда вертикальная скорость больше нуля), а значит они могут пролететь сквозь потолок.
На системах мощнее Genesis/Mega Drive, стоит заставить кольца проверять столкновения с горизонтальными поверхностями. Если они ударились об стены, они должны умножить свою горизонтальную скорость на -0.25. Также стоит ввести проверку на столкновения с потолком. При столкновении они должны при движении вниз отскакивать как обычно, а при движении вверх устанавливать вертикальную скорость равную 0. Это более справедливо, так как кольца не будут теряться из-за ограничений.
Жизнь колец
Все потерянные и несобранные кольца уничтожаются после 256 циклов. Также, они уничтожаются, если выходят за горизонтальные границы экрана, но на мощных системах можно это не включать.
Сбор колец
Должно пройти 64 цикла, перед тем, как Соник будет способен потерянные собирать кольца.
Неуязвимость
Соник остается неуязвимым на небольшой период времени после удара. Она длится пока Соник летит назад, плюс 120 циклов после приземления. Во время этих 120 шагов он мигает, тратя 4 цикла на появление и 4 цикла на исчезновение.
Анимация колец
Обычные кольца имеют 4 кадра в анимации, и показывают каждый кадр 8 циклов. Потерянные кольца более интересны, так как их скорость анимации зависит от времени, прошедшего с момента создания. Сначала скорость равна 2 цикла на кадр, но затем она замедляется примерно до 16 циклов на кадр. Точные значения неизвестны.
Глубина колец
Все кольца имеют большую глубину, чем Соник, т.е. позади него. А вот искры от подобранных колец рисуются впереди него.