2012-01-05 2 views
0

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

У меня есть метод, который сцена может вызывать с именем changeScene (MENU_SCENE) и так далее.

В самом диспетчере сцен есть ящик с переключателем, который говорит, case MENU_SCENE: возвращает новый MenuScene().

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

Есть ли способ для измельчения без корпуса переключателя? В идеале мне бы хотелось что-то там, где задана строка, возвращает BaseScene *, но способ, которым я могу думать об этом, все равно будет включать в себя случай переключения (или вложенные ifs, поскольку строки в случаях не разрешены).

Благодаря

ответ

3

Похоже, вы хотите карту, где строка является ключом. Значение зависит от того, что находится в вашем операторе switch. Это может быть так же просто, как следующая строка, или это может быть указатель на вызываемую функцию, если вам нужен специальный код для каждого случая.

Смежные вопросы