К содержимому
Аватар и движение
На этой странице

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

Все числа, с которыми движется аватар: ходьба, рывок, хитбокс, появление и то, как уровень может их масштабировать

Эта страница - источник истины для аватара. Игра и оба бота сделаны под эти числа, а в 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, потому что рывок над ним тоже вдвое короче
  • Окна в секундах не масштабируются: перезарядка, неуязвимость, таймаут урона, появление. Только длина самого рывка масштабирует два его собственных окна

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