let animData = [
[-90, -67.5, "straight", -90],
[-67.5, -22.5, "aslant", 0],
[-22.5, 22.5, "straight", 0],
[22.5, 67.5, "aslant", 90],
[67.5, 90, "straight", 90],
[90, 135, "straight", -90],
[135, 157.5, "aslant", -90],
[157.5, 181, "straight", 0],
[-181, -157.5, "straight", 0],
[-157.5, -135, "aslant", 0],
[-135, -90, "straight", 90],
]
let dirInPart = function(list) {
return list.some((element) =>
joystick.direction.angle() >= animData[element][0] &&
joystick.direction.angle() < animData[element][1])
}
Вот такой массив и функцию нужно создать в animatorComp (перед return, а не в нём). Это моя собственная разработка я её придумывал пару дней. Если совсем вкратце, то функция dirInPart принимает набор цифр в массиве эти цифры это номер части в которой расположен угол наклона джойстика. На фотке выше начерчен этот круг и разбит на 11 частей от 0 до 10, почему именно 11, а не 8 это ведь было бы логично. Да я пробовал сначала на 8 и из-за особенностей будущих анимаций атаки и расположения углов пришлось сделать именно так. Если я начну это объяснять подробней то на это уйдёт ещё 13 постов, так что просто поверьте на слово) Post #84
27

Теперь добавим прыжок, я хочу сделать чтобы он тригерился когда персонаж на земле и джойстик направлен ровно наверх. Это можно сделать просто проверив угол направления джойстика, я в первый раз так и сделал, но из-за этого решения код превратился в говно и его теперь приходится переписывать) Потому что нам в будущем когда будем делать атаки понадобится делать ооочень много проверок угла наклона джойстика и проверять это просто сравнивая угол > 90 или угол < 180 это ужасная идея. Мы же будем проверять угол наклона по умному:
- ❤ 2