Народ, если мне нужно вызывать clear and invalidate timer by

Handle в разных блупринтах, то лучше создать сам таймер в game mode и с блупринтов различных получать game mode(get gamemode), а потом кастовать переменную таймера и вызывать clear and invalidate timer by Handle , это вообще не кривой подход?
Пробовал сделать в UI глобальную переменную таймера - такой фокус не проходит

26 ответов

9 просмотров

Сделай диспатчер

Dethlord- Автор вопроса
Maksim Solovjev
Сделай диспатчер

Дело в том что таймеры реализовывают парадигму наблюдателя, а диспатчеры удобны для подписок, уже внутри функции таймера будут и события и возможно диспатчеры.

Dethlord- Автор вопроса
Dethlord
Дело в том что таймеры реализовывают парадигму наб...

Вот что я имел ввиду, это допустимо? или считается кривая реализация наблюдателя?

Dethlord
Вот что я имел ввиду, это допустимо? или считается...

хмммм но не проще в такому случае будет обращаться напрямую к GameMode и вызывать в нем событие?

Dethlord- Автор вопроса
IdZone
хмммм но не проще в такому случае будет обращаться...

Дело не в отправке события в геймод, а в геймоде наблюдатель сидит( например по примеру матч 3 - кто-то должен мониторить постоянно набор 3 в ряд а кто-то бонусы и другие вещи)

Dethlord- Автор вопроса

Я просто не могу догнать почему никто не сталкивался с проблемой реализации наблюдателя? без него же просто в некоторых ситуациях - не получится. Некая логика посыла -ответа не требует его, но контроль правил игры по любому.

Dethlord
Я просто не могу догнать почему никто не сталкивал...

так минутку у тебя этот наблюдатель создан и функционирует в GameMode? а как у других систем происходит подпись на него? и для чего он вообще нужен? Я так понимаю он должен вызываться на тике таймера так? ну так почему бы просто не создать Event dispatcher и вызывать его? хммм ну ладно

Dethlord- Автор вопроса
IdZone
так минутку у тебя этот наблюдатель создан и функц...

Сам наблюдатель может быть расширен(тут в видео просто каркас), и туда хоть диспатчеры хоть события

Dethlord
Сам наблюдатель может быть расширен(тут в видео пр...

мужик, извини, но я в твоём видел не увидел ни наблюдателя, ни даже колбека, похоже у тебя GameMode всего лишь вытягивает данные из виджета

Aleksei DTG
мужик, извини, но я в твоём видел не увидел ни наб...

ну может он потом будет вызывать на каждом тике таймера диспетчер хммм

Dethlord- Автор вопроса

Каким образом GM вытягивает данные? он же просто холостой по факту, не?

Dethlord
Каким образом GM вытягивает данные? он же просто ...

Не совсем корректно выразился, данные он у тебя не вытягивает, но судя по твоим нодам наблюдателем является именно GM (иначе зачем он печатает "Observe?". И честно говоря, я вообще очень плохо понимаю что ты попытался изобразить. У тебя в ГМ зачем-то таймер, он обновляется, пока кроме печати ничего не происходит, и останавливается он, как правильно заметили, почему-то из виджета

Dethlord- Автор вопроса
Aleksei DTG
Не совсем корректно выразился, данные он у тебя не...

Я показал каркас идеи а не готовую реализацию(архитектуру)

в общем такой разговор получается слишком абстрактным. Из того, что у тебя сейчас реализовано - вообще мало чего можно понять, ты запускаешь таймер, потом его останавливаешь - всё, здесь сложно что-либо обсуждать. Хотя есть к чему придраться - запуск таймера у тебя в одном классе, остановка в другом, это как минимум подозрительно. Ну и наблюдателем здесь и не пахнет, когда один класс просто подсасывает данные другого класса - это так себе наблюдение. Вернее данные он, конечно, получит, но в твоём примере сейчас и этого нет. А классический шаблон реализуется через подписки.

Dethlord
https://www.youtube.com/watch?v=VeSWefm7BQc

Это пример механизма обратного вызова (callbacks), а не наблюдателя Вот классический наблюдатель https://en.wikipedia.org/wiki/Observer_pattern И обрати внимание, что коллбэков в нём нет

Dethlord- Автор вопроса
Dethlord
https://www.youtube.com/watch?v=VeSWefm7BQc

Да он в чарактере делает так как сам чел меняет, а если мой наблюдатель должен контроллировать основные аспекты игры?

Dethlord- Автор вопроса
Dethlord- Автор вопроса

не забываю, я гибридно пишу

Dethlord
не забываю, я гибридно пишу

Не лез бы ты в дебри и не делал вид, что понимаешь эти паттерны.. Напиши что конкретно тебе нужно реализовать, по русски, без выкрутасов. Думаю тогда помогут. Сейчас от тебя идет набор псевдо умного текста и каждый додумывает своё, что ты там имел ввиду

Dethlord- Автор вопроса

Ну как я понимаю, если брать тетрис как пример то подписка будет удобна чтобы разрушить все обьекты в линии(или например вызвать game over при переполнении), а как ты на основе подписки сделаешь контроль горизонтального и вертикального заполнения ячеек? Допустим у тебя будет некая функция которая будет мониторить эту заполненность -ну ок, а куда ты ее засунешь? Когда есть некая однозначность - типа нажатой кнопки или взятии тортика тогда диспатчеры имеют понятное применение(так как реализаторы нажима кнопки или сам колайдинг это уже написанно до тебя), ты не озадачиваешься написанием самого факта нажатия кнопки.

Dethlord
Ну как я понимаю, если брать тетрис как пример то ...

ну если это допустим тетрис то возможно вызвать событие когда кубик падает на поле и допустим проводить несколько проверок допустим заполнения поля и ТД

Dethlord- Автор вопроса
IdZone
ну если это допустим тетрис то возможно вызвать со...

Ну согласись тут подписка не играет ключевую архитектурную особенность, тут достаточно и простого вызова функции или события

Похожие вопросы

Обсуждают сегодня

у меня такой вопрос про память в x86 возник, может кто пояснить?.. у процессора есть (как минимум) 3 типа адресов (названия "п1", "п2", "п3" --- мои, чтобы проще было дальше)...
Toideng
5
Я колись ставив гуглу антиспам 3.0, може і норм, але мені не дуже зайшло. Теж думав тиждень, що його і куди. Зупинився на трех варіантах відразу всі три і включив 1. Перевір...
𝓔𝓾𝓰𝓮𝓷𝓮𝓥 J
2
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
здравствуйте, братья, кто-нибудь знает, как работать с Swift.com или Swift.net?
Ozzy
6
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Всем привет, может уже кто-то пытался выдернуть из api информацию о дате рождения пользователя Есть ли вообще такая возможность?
Artem Stormageddon
2
Приветствую всех, возникла проблема, до этого писал бота в простом формате где при выполнении условий приходило через send_message информация, сейчас решил добавить хендлер на...
Andrew
4
Портфолио: Зовут меня Александр, мне 41 год. Город Киров. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github.co...
Magic
11
где собака, админ группы? нычкуется и боится проявить волю, в толерантность еще не наигрался? @yelizariev
Ognezar
61
У тебя в конфиге нигде нет deny all; или вообще любого deny?
Alexander Sherbakov
10
Карта сайта