TGViewer
Moth Moth @namlessmoth · 44 subscribers
Post #76 26
Мы начинаем подходить к сложной теме - машине состояний и смене анимаций персонажа. Ну а пока давайте просто сделаем так чтобы моль поворачивалась впаво-влево в зависимости от того в какое направление идёт:

export default function controllerComp(joystick) {
return {
id: "controllerComp",
require: ["pos"],

add() {

},
update() {
this.move(joystick.direction.scale(200))
if (joystick.direction.x)
this.flipX = joystick.direction.x < 0
},
}
}

Для этого в контроллере персонажа в апдейте добавим две строчки
if (joystick.direction.x)
this.flipX = joystick.direction.x < 0
сначала разберём вторую. В ней мы просто поворачиваем персонажа в зависимости от направления джойстика. flipX - свойство, которое добавляет компонент sprite это булевое (да - нет) значение, которое просто отвечает за поворот спрайта. Подробнее kaboomjs.com/#SpriteComp . joystick.direction.x - у вас мог возникнуть вопрос откуда взялся "х" у вектора хотя мы уже не раз смотрели в документацию kaboomjs.com/#Vec2 по вектору и знаем что у него есть значения "х" и "у", которые можно получить напрямую. Ну а дальше простая математическая проверка х < 0 , которая может вернуть true или false, должна быть понятна. Если мы напишем только вторую строчку без проверки if, то у нас персонаж будет поворачиваться впрво каждый раз когда мы отпускаем джойстик, а нам надо чтобы он изменял поворот только когда джойстик двигается. Поэтому мы проверяем двигается ли джойстик т.е. не равен ли он нулю if (joystick.direction.x != 0) , Но вы могли заметить, что в коде выше нет проверки с нулём, там просто if (joystick.direction.x) , это просто такое сокращение в js и на самом деле можно написать и так и так и всё будет работать. И ещё небольшой момент - после условия if нет фигурных скобок {} это тоже сокращение, если после условия if идёт всего одна строчка, то фигурные скобки можно не писать. Без сокращений это выглядело бы так:

if (joystick.direction.x != 0) {
this.flipX = joystick.direction.x < 0
}
  • ❤ 2
More from @namlessmoth
  1. Mar 7, 2026Как сломать босса одним прокачанным навыком Причём первую заратану я победил точно так же,…
  2. Mar 3, 2026Наиграл уже 150+ часов и даже не прошел половину игры Мне капец как не везёт почти в каждо…
  3. Feb 17, 2026Один месяц подписки на впн Вдруг кому надо https://t.me/gruVPNbot?start=g_UZhunlWNfFC_2127…
  4. Feb 16, 2026оставлю тут, чтобы не потерять вам смотреть нельзя, это только для меня
  5. Feb 13, 2026Вчера сделал всего три задания и все три оказались не правильными 1) Задание: Проведите ре…
  6. Feb 12, 2026Оказалось что всё-таки можно сдавать несколько заданий за один раз. Я вчера сдал 7 заданий…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →