TGViewer
Prefire iOS Prefire iOS @prefire_ios · 980 subscribers
Post #88 663
🎞 Как я сделал анимации пиксельного кота на macOS (SpriteKit + свой движок)

В этом видео кот дышит, моргает, двигает хвостом, следит за курсором и спит. Всё это работает на базе моего простого и удобного движка анимаций.

🧠 Идея
Каждое настроение кота (сон, бодрствование, наблюдение) — это набор анимационных эффектов, каждый из которых независим и легко настраивается.

🎛 Система сделана так, чтобы было просто управлять поведением и позой.
 case .walking: // Анимации для состояния ходьбы
addEffect(BlinkEffect()) // Моргание глаз
addEffect(EyeWanderEffect()) // Наблюдение за рандомной точкой
addEffect(BreatheEffect()) // Дыхание
addEffect(TailWagEffect()) // Движение хвостом


🧩 Как устроен движок
Каждый эффект реализует простой протокол:

protocol CatAnimationEffect {
func apply(to view: CatLayeredView)
func remove(from view: CatLayeredView)
}


Аниматор подключает нужные эффекты в зависимости от "настроения" кота:

animator.setPose(.sleeping)
// → добавит BreatheEffect, HideEyesEffect, LyingEffect


🎬 Эффекты могут быть какими угодно. Вот, например, как двигается хвост:

final class TailWagEffect: CatAnimationEffect {
func apply(to view: CatLayeredView) {
let wag = SKAction.sequence([
.rotate(byAngle: 0.2, duration: 1.3),
.rotate(byAngle: -0.4, duration: 1.3),
.rotate(byAngle: 0.2, duration: 1.3)
])
view.tail.run(.repeatForever(wag), withKey: "tail_wag")
}

func remove(from view: CatLayeredView) {
view.tail.removeAction(forKey: "tail_wag")
}
}
  • 🔥 13
  • ❤ 3
More from @prefire_ios
  1. Sep 16, 2026☺️ Prefire в требованиях к вакансиям Где-то месяц назад поставил ежедневную задачу на Chat…
  2. Sep 5, 2026🧭 Podlodka iOS Crew: разработка с AI С 14 по 18 сентября пройдет новый сезон Podlodka iOS…
  3. Aug 26, 2026Кажется, мой кот начал жить своей жизнью. Сначала друзья просто закинули Mewmori в несколь…
  4. Aug 18, 2026Нахождение текста котом Mewmori в уникальных приложениях Что бы кот видел, я снимаю скринш…
  5. Aug 17, 2026Начал готовить к релизу ScreenCat - 🐈 Mewmori - Переименовал проект в Mewmori (типо memor…
  6. Aug 5, 2026Сделал систему скинов для котиков 🐈 В ScreenCat уже много скинов, и я прям сильно устал р…
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 →