К содержимому
Документация
На этой странице

Аватар и движение

Аватар ходит со скоростью 15 единиц в секунду, а рывок за 0,15 с переносит его на 7,5 единицы. Хитбокс - круг радиусом 0,15 единицы, меньше нарисованного квадрата в 0,5 единицы

Эта страница - источник истины для аватара. Игра и оба бота сделаны под эти числа, а в SDK они записаны константами AvatarRules. Код, который с этой страницей не согласен, - ошибка в коде

Расстояния указаны в мировых единицах. Камера по умолчанию ровно 10 единиц в высоту (ValueRules.DefaultZoom), так что единица - это десятая часть высоты экрана, а тело аватара шириной в половину единицы. Зум камеры меняет то, сколько вы видите, но не числа ниже

Числа

ЧтоЗначениеПростыми словами
Скорость ходьбы15 ед./спересекает экран сверху вниз за две трети секунды
Скорость рывка50 ед./св 3,3 раза быстрее ходьбы
Длительность рывка0,15 с
Дальность рывка7,5 единицыскорость × длительность, три четверти высоты экрана
Перезарядка рывка0,3 ссчитается с начала рывка
Неуязвимость рывка0,3 стоже с начала, поэтому длится на 0,15 с дольше самого движения
Кратчайший рывок0,01 единицыстолько же, сколько дистанция прибытия, ближе вы уже стоите на цели
Скорость отбрасывания50 ед./св 3,3 раза быстрее ходьбы, Урон и жизни
Длительность отбрасывания0,15 суправлять в это время нельзя
Таймаут урона1,0 свсе следующие попадания внутри него игнорируются
Размер тела0,5 единицынарисованный квадрат
Хитбоксрадиус 0,15 единицы0,3 от тела, намеренно меньше видимого
Появление и исчезновение0,3 свырастает и сжимается в точку
Влияние размера игрока на скоростьполное, 1,0более крупный аватар движется пропорционально быстрее. Это трек размера игрока в уровне, а не зум камеры
Скорость поворота30 /скосметика: куда смотрит тело
Дистанция прибытия0,01 единицыближе этого к курсору считается, что вы стоите на нём

Производные от них, и именно они решают уворот:

ЧтоЗначение
Кратчайший рывок: расстояние0,01 единицы
Кратчайший рывок: длительностьзаметно короче кадра
Кратчайший рывок: перезарядка и неуязвимостьзаметно короче кадра, у каждой
Самые частые рывкине чаще, чем через кадр
Дальность отбрасывания7,5 единицы

Что происходит при попадании - Урон и жизни

Движение

Управлять можно одним из двух способов, и игра никогда их не смешивает:

  • Направление: WASD, стик геймпада, гироскоп. Аватар движется туда, куда вы толкаете, со скоростью ходьбы. Стик, отклонённый наполовину, даёт половину скорости, и другого "медленного шага" нет
  • Курсор: мышь или палец. Аватар догоняет точку, а не телепортируется в неё. Он движется со своей скоростью ходьбы и отстаёт от быстрой мыши

Движение мгновенное в обоих случаях: без разгона, скольжения и инерции. Вы останавливаетесь в тот же кадр, когда перестаёте двигаться

Рывок

Неуязвимость длится на 0,15 с дольше движения. Этот запас после приземления и позволяет проходить рывком сквозь препятствие

Во время рывка вы управляете направлением. Рывок идёт туда, куда вы просите: по зажатому направлению или в точку прицела, и его можно поменять посреди рывка. Рывок без зажатого направления никуда не двигает

С курсором рывок идёт туда, куда вы указываете, и там останавливается:

Расстояние до курсораЧто происходит
дальше 7,5 единицыполный рывок в его сторону. Вы останавливаетесь, не доходя до курсора
от 0,01 до 7,5 единицыукороченный рывок, который заканчивается точно на курсоре
ближе 0,01 единицырывка нет

Укороченный рывок - тот же рывок в уменьшенном масштабе. Путь, неуязвимость и перезарядка уменьшаются вместе: рывок вполовину короче вдвое меньше защищает и вдвое быстрее перезаряжается. Дешевле он не бывает. Два половинных рывка стоят ровно столько же, сколько один полный, и проходят то же расстояние

Несостоявшийся рывок ничего не стоит: перезарядка не начинается, ничего не тратится. Игрок с направлением, который ничего не зажал, получает тот же ответ - рывка нет

Тело становится глубже синим, пока вы в рывке, а затем возвращает обычный цвет за следующие 0,15 с. Ничто другое не меняет цвет тела, даже попадание - рывок это ваше собственное движение, поэтому меняется только он

След рывка и этот синий зависят от длины рывка: полный рывок показывает их целиком, самый короткий - на 0,3 от этого, всё между ними пропорционально. У короткого рывка частицы вылетают медленнее, так что след выглядит ровно такой длины, как рывок

Два стиля, один бюджет

  • В режиме Направление рывок всегда идёт на все 7,5 единицы. Надёжная дальность, прицеливаться не надо, но и остановиться на полпути нельзя
  • С курсором вы выбираете длину и можете остановиться точно в точке. Короткий рывок - это короче защита и ещё один уязвимый кадр на каждый рывок. Если указать далеко, вернётся полный рывок

По прямой оба проходят одно и то же расстояние за одно и то же время. Ни один стиль не сильнее: один даёт точность, другой простоту

Рывки подряд

Зажатый рывок - не неуязвимость. Перезарядка и защита одной длины, поэтому зажатая кнопка даёт непрерывную цепочку рывков. Но между двумя рывками всегда есть ровно один кадр, в который вас можно задеть, при любой частоте кадров, на медленном телефоне так же, как на быстром ПК. Самая плотная цепочка - рывок не чаще, чем через кадр

Хитбокс

Кольцо из точек на аватаре нарисовано ровно по хитбоксу. Пуля задела контур и ничего не сделала? Так и задумано

Пока вы неуязвимы (в рывке или сразу после попадания), хитбокса нет вовсе

Это же кольцо показывает жизни: горящая точка - жизнь в запасе

Заметность кольца задаёт Настройки → Интерфейс → Непрозрачность кольца хитбокса. 0 скрывает его, но уровни сбалансированы под того, кто его видит

Тело - сетка из 25 квадратов, 5 на 5. С потерей здоровья квадраты от края к центру не исчезают, а гаснут: потерянный квадрат остаётся бледным призраком, так что сетка всегда показывает все 25, а здоровье читается по числу ещё горящих.

Так выглядит классический скин. Скин может поменять сетку, форму каждой клетки и цвета - Скины Квадраты-призраки достаточно прозрачны, чтобы сквозь них было видно кольцо хитбокса под телом. При нуле здоровья горит ровно один квадрат - последний. Любая потеря здоровья показывается за 0,25 с, любое восстановление - за 0,6 с, сколько бы жизней это ни было. Если выключить Графика → Эффект осколков, тело станет одним квадратом, который гаснет. Это для слабых устройств

Появление и исчезновение

Аватар за 0,3 с вырастает в уровне и за 0,3 с сжимается в точку при смерти. В обоих случаях он не отвечает на ввод, а во время появления его нельзя задеть

Масштабирование

Уровень может анимировать размер и скорость аватара своими треками. Ещё он может на время забрать управление или выключить столкновения

  • Скорости ходьбы, рывка и отбрасывания умножаются на одно число. Поэтому на половинной скорости вдвое короче и рывок (3,75 единицы)
  • Более крупный аватар движется пропорционально быстрее, потому что его увороты тоже выросли. Размер здесь - собственный размер аватара из трека размера игрока. Зум камеры не меняет ни скорость, ни расстояния, ни окна: аватар проходит 15 единиц в секунду, что бы ни делала камера
  • Хитбокс - доля нарисованного тела, поэтому растёт и уменьшается вместе с аватаром
  • Прицеливание рывка использует текущую дальность, а не табличные 7.5. На уровне с половинной скоростью курсор в 3,75 единицы уже просит полный рывок, а порог 0,01 единицы становится 0,005, потому что рывок над ним тоже вдвое короче
  • Окна в секундах не масштабируются: перезарядка, неуязвимость, таймаут урона, появление. Только длина самого рывка масштабирует два его собственных окна

Боты подчиняются тем же правилам, Боты