Говорите менеджеру сцены, что вы готовы сменить сцену? - PullRequest
0 голосов
/ 07 июня 2011

Прямо сейчас для моей игры у меня есть менеджер сцен, и он управляет сценой.Он отправляет сообщения о событиях на сцену, такие как рендеринг, ввод и т. Д. Это позволило мне сделать сцену неосведомленной о менеджере сцены.Теперь я бы хотел, чтобы сцена могла отправлять менеджеру сцены сообщение о том, на какую сцену она хочет переключиться (в виде простого текста).Как я могу сделать это, не информируя сцену о классе менеджера сцены?

Спасибо

Ответы [ 2 ]

3 голосов
/ 07 июня 2011

Рассмотрим шаблон Observer : ваша сцена предоставит интерфейс для наблюдателей, которые будут уведомлены об интересных событиях.Менеджер сцены может быть одним из таких наблюдателей, который интересуется событиями «запрос изменения сцены».Затем сцена будет отправлять уведомление всем наблюдателям, когда она будет готова к обмену.

1 голос
/ 07 июня 2011

Один из способов - заставить менеджер сцены передать НЕ ссылку на себя, а ссылку на меньший объект, который поддерживает только небольшое количество методов, необходимых для прохождения определенных сообщений.

Это можетбыть абстрактным классом (он же «интерфейс»), который реализует менеджер сцены, или отдельным объектом.

И если вы используете подсчет ссылок или умные указатели, подумайте о том, чтобы сделать его слабой обратной ссылкой ...

...