Аватар и движение
Все числа, с которыми движется аватар: ходьба, рывок, хитбокс, появление и то, как уровень может их масштабировать
Эта страница - источник истины для аватара. Игра и оба бота сделаны под эти числа, а в SDK они записаны константами AvatarRules. Код, который с этой страницей не согласен, - ошибка в коде
Расстояния указаны в мировых единицах. Камера по умолчанию ровно 10 единиц в высоту (ValueRules.DefaultZoom), так что единица - это десятая часть высоты экрана, а тело аватара шириной в половину единицы.
Зум камеры меняет то, сколько вы видите, но не числа ниже
Числа
| Что | Значение | Простыми словами |
|---|---|---|
| Скорость ходьбы | 15 ед./с | пересекает экран сверху вниз за две трети секунды |
| Скорость рывка | 50 ед./с | в 3.3 раза быстрее ходьбы |
| Длительность рывка | 0.15 с | |
| Дальность рывка | 7.5 единицы | скорость × длительность, три четверти высоты экрана |
| Перезарядка рывка | 0.3 с | считается с начала рывка |
| Неуязвимость рывка | 0.3 с | тоже с начала, поэтому длится на 0.15 с дольше самого движения |
| Кратчайший рывок | 0.5 единицы | одно тело аватара. Ближе рывок не выполняется |
| Скорость отбрасывания | 50 ед./с | в 3.3 раза быстрее ходьбы, Урон и жизни |
| Длительность отбрасывания | 0.2 с | управлять в это время нельзя |
| Таймаут урона | 1.0 с | все следующие попадания внутри него игнорируются |
| Размер тела | 0.5 единицы | нарисованный квадрат |
| Хитбокс | радиус 0.15 единицы | 0.3 от тела, намеренно меньше видимого |
| Появление и исчезновение | 0.3 с | вырастает и сжимается в точку |
| Влияние размера игрока на скорость | полное, 1.0 | более крупный аватар движется пропорционально быстрее. Это трек размера игрока в уровне, а не зум камеры |
| Скорость поворота | 30 /с | косметика: куда смотрит тело |
| Дистанция прибытия | 0.01 единицы | ближе этого к курсору считается, что вы стоите на нём |
Производные от них, и именно они решают уворот:
| Что | Значение |
|---|---|
| Кратчайший рывок: расстояние | 0.5 единицы |
| Кратчайший рывок: длительность | 0.01 с |
| Кратчайший рывок: перезарядка и неуязвимость | по 0.02 с |
| Самые частые рывки | каждый третий кадр при 60 к/с, 20 в секунду |
| Дальность отбрасывания | 10 единиц |
Что происходит при попадании - Урон и жизни
Движение
Управлять можно одним из двух способов, и игра никогда их не смешивает:
- Направление: WASD, стик геймпада, гироскоп. Аватар движется туда, куда вы толкаете, со скоростью ходьбы. Стик, отклонённый наполовину, даёт половину скорости, и другого "медленного шага" нет
- Курсор: мышь или палец. Аватар догоняет точку, а не телепортируется в неё. Он движется со своей скоростью ходьбы и отстаёт от быстрой мыши
Движение мгновенное в обоих случаях: без разгона, скольжения и инерции. Вы останавливаетесь в тот же кадр, когда перестаёте двигаться
Рывок
Неуязвимость длится на 0.15 с дольше движения. Этот запас после приземления и позволяет проходить рывком сквозь препятствие
Во время рывка вы управляете направлением. Рывок идёт туда, куда вы просите: по зажатому направлению или в точку прицела, и его можно поменять посреди рывка. Рывок без зажатого направления никуда не двигает
С курсором рывок идёт туда, куда вы указываете, и там останавливается:
| Расстояние до курсора | Что происходит |
|---|---|
| дальше 7.5 единицы | полный рывок в его сторону. Вы останавливаетесь, не доходя до курсора |
| от 0.5 до 7.5 единицы | укороченный рывок, который заканчивается точно на курсоре |
| ближе 0.5 единицы | рывка нет |
Укороченный рывок - тот же рывок в уменьшенном масштабе. Путь, неуязвимость и перезарядка уменьшаются вместе: рывок вполовину короче вдвое меньше защищает и вдвое быстрее перезаряжается. Дешевле он не бывает. Два половинных рывка стоят ровно столько же, сколько один полный, и проходят то же расстояние
Несостоявшийся рывок ничего не стоит: перезарядка не начинается, ничего не тратится. Игрок с направлением, который ничего не зажал, получает тот же ответ - рывка нет
Два стиля, один бюджет
- В режиме
Направлениерывок всегда идёт на все 7.5 единицы. Надёжная дальность, прицеливаться не надо, но и остановиться на полпути нельзя - С курсором вы выбираете длину и можете остановиться точно в точке. Короткий рывок - это короче защита и ещё один уязвимый кадр на каждый рывок. Если указать далеко, вернётся полный рывок
По прямой оба проходят одно и то же расстояние за одно и то же время. Ни один стиль не сильнее: один даёт точность, другой простоту
Рывки подряд
Зажатый рывок - не неуязвимость. Перезарядка и защита одной длины, поэтому зажатая кнопка даёт непрерывную цепочку рывков. Но между двумя рывками всегда есть ровно один кадр, в который вас можно задеть, при любой частоте кадров, на медленном телефоне так же, как на быстром ПК. Самая плотная цепочка - рывок каждый третий кадр при 60 к/с
Хитбокс
Кольцо из точек на аватаре нарисовано ровно по хитбоксу. Пуля задела контур и ничего не сделала? Так и задумано
Пока вы неуязвимы (в рывке или сразу после попадания), хитбокса нет вовсе
Это же кольцо показывает жизни: горящая точка - жизнь в запасе
Заметность кольца задаёт Настройки → Интерфейс → Непрозрачность кольца хитбокса. 0 скрывает его, но уровни сбалансированы под того, кто его видит
Тело - сетка из 25 квадратов, 5 на 5. С потерей здоровья она теряет квадраты от края к центру.
Если выключить Графика → Эффект осколков, тело станет одним квадратом, который гаснет. Это для слабых устройств
Появление и исчезновение
Аватар за 0.3 с вырастает в уровне и за 0.3 с сжимается в точку при смерти. В обоих случаях он не отвечает на ввод, а во время появления его нельзя задеть
Масштабирование
Уровень может анимировать размер и скорость аватара своими треками. Ещё он может на время забрать управление или выключить столкновения
- Скорости ходьбы, рывка и отбрасывания умножаются на одно число. Поэтому на половинной скорости вдвое короче и рывок (3.75 единицы)
- Более крупный аватар движется пропорционально быстрее, потому что его увороты тоже выросли. Размер здесь - собственный размер аватара из трека размера игрока. Зум камеры не меняет ни скорость, ни расстояния, ни окна: аватар проходит 15 единиц в секунду, что бы ни делала камера
- Хитбокс - доля нарисованного тела, поэтому растёт и уменьшается вместе с аватаром
- Прицеливание рывка использует текущую дальность, а не табличные 7.5. На уровне с половинной скоростью курсор в 3.75 единицы уже просит полный рывок, а порог 0.5 единицы становится 0.25, потому что рывок над ним тоже вдвое короче
- Окна в секундах не масштабируются: перезарядка, неуязвимость, таймаут урона, появление. Только длина самого рывка масштабирует два его собственных окна
Боты подчиняются тем же правилам, Боты