Game Programming Patterns / Паттерны программирования в играх: 1.3. Observer

← →
Английский оригинал Перевод на русский

Сожалеем, но текст оригинала доступен только зарегистрированным пользователям.

Но если вы напишите несколько крупных приложений, используя их, вы начнёте кое-что замечать.

GromHoll 13.06.14 в 23:54

0

Большая часть кода ваших наблюдателей выглядит одинаково.

GromHoll 13.06.14 в 23:55

0

Это выглядит примерно так:

GromHoll 13.06.14 в 23:55

0

Получить уведомление о том, что некоторые состояние изменилось.

GromHoll 13.06.14 в 23:56

0

Изменить некоторый элемент UI, чтобы отразить новое состояние.

GromHoll 13.06.14 в 23:57

0

Все эти, "Ой, у героя теперь 7 жизней?

GromHoll 13.06.14 в 23:58

0

Позвольте мне поставить ширину индикатора здоровья в 70 пикселей"

GromHoll 14.06.14 в 00:00

0

Со временем всё это утомляет.

GromHoll 14.06.14 в 00:02

0

Академики компьютерных наук и инженеры-программисты пытались устранить эту скуку долгое время.

GromHoll 14.06.14 в 00:03

0

Их попытки известны под разными именами: "Программирование потока данных", "Реактивное программирование" и прочие.

GromHoll 14.06.14 в 00:06

0

Хоть и были некоторые успехи, в определённых областях (обработка звука или проектирование микросхем), Святой Грааль так и не найден.

GromHoll 14.06.14 в 00:10

0
+1

В тоже время, менее амбициозный подход начинает набирать обороты.

GromHoll 14.06.14 в 00:11

0

Многие недавние фреймворки используют "привязку данных".

GromHoll 14.06.14 в 00:12

0

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

GromHoll 14.06.14 в 00:15

0

Она занимается тем, что автоматически настраивает UI элемент или вычисляет некое значение, чтобы отразить изменение некой величины.

GromHoll 14.06.14 в 00:18

0

Как и другие декларативные системы, привязка данных достаточно медленная и сложная, что бы поместиться внутри ядра игрового движка.

GromHoll 14.06.14 в 00:19

0

Но я был бы удивлён, если бы не увидел, как её начали применять в менее критичных областях игры, таких как UI.

GromHoll 14.06.14 в 00:21

0

Тем не менее, старый добрый шаблон "Наблюдатель" всё ещё ждёт нас.

GromHoll 14.06.14 в 00:22

0

Конечно, он не так интересен, как популярные техники, которым удаётся втиснуть в название сразу и "функциональное", и "реактивное", но он убийственно прост, и он работает.

GromHoll 14.06.14 в 00:25

0

Для меня это два самых важных критерия для решения.

GromHoll 14.06.14 в 00:26

0
Минутку...

← Предыдущая страница