Вот этот код определяет в какое из 11 направлений смотрит моль (почему их 11, а не 8 я объяснял выше)
let currentPart = function(flipX) {
let part
animData.forEach((element) => {
if ( joystick.direction.angle() >= element[0] &&
joystick.direction.angle() < element[1]) {
part = animData.indexOf(element)
}
})
if (flipX && part == 0) part = 10
if (!flipX && part == 5) part = 4
return part
}Затем используя эту функцию пропишем повороты и анимации
this.onStateEnter("bite", () => {
this.speed = this.attackSpeed
this.angle = animData[currentPart(this.flipX)][3]
if (animData[currentPart(this.flipX)][2] == "straight") {
this.play("bite")
}
else {
this.play("biteSide")
}
})
this.onAnimEnd((anim) => {
states2.forEach((key) => {
if (anim == key) {
this.speed = this.defaultSpeed
this.angle = 0
this.enterState("idle")
}
})
})