TGViewer
Moth Moth @namlessmoth · 44 subscribers
Post #125 53
Теперь рассмотрим второй вариант, когда объекты не "наследуются" напрямую от родителя, но между ними тоже надо както передавать данные
Например игрок наследуется от игры game так же от неё наследуются "родитель кнопок" button он нужен чтобы задать привязку для его дочерних кнопок, а также размер и фиксацию на экране. И от button "наследуются" две кнопки меню и состояние игрока (бой или исследование). И вот нам надо передавать состояние игрока этой кнопке. Сделать это через game как в предыдущем варианте не получится потомучто кнопка "наследуется" от game не напрямую, а через button. Можно конечно написать в кнопке "this.parent.parent.trigger()" это будет работать, но выглядит это как то кринжово. Для таких случаев есть второй вариант - это создать отдельно систему, которая будет управлять кнопкой и игроком. Это можно сравнить с температурой воздуха термометром и человеком. При повышении температуры человек реагирует - ему становится жарко, термометр реагирует - поднимается шкала, но это не значит что термометр и человек как то связаны и так же не значит, что температура воздуха это какой то отдельный объект. температура - это некая система, которая может управлять объектами вокруг но по условиям, которые задают сами объекты. Надеюсь это понятный пример я его придумал находу)
В коде это получилось так:
const player = game.add([
...
])

const stat = button.add([
...
])

stat.onClick(() => {
player.switchAction()
stat.switchIcon()
})

У нас есть игрок со своими компонентами вы его прекрасно знаете, есть stat которая наследуется от button - это кнопка, которая показывает состояние игрока и есть отдельно система которая находится в том же контексте где игрок и кнопка и может управлять ими - просто вызывать заранее прописанные методы. Но если объекты будут находится в разных контекстах например в разных файлах, то систему создать не получится, также как и температура действует на термометр и человека только когда они в одной комнате.
На схеме показаны красным как делать не стоит, и зелёным как надо делать.
  • ❤ 3
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 →