Создание динамического менеджера сцены? - PullRequest
0 голосов
/ 05 января 2012

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

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

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

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

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

Спасибо

1 Ответ

3 голосов
/ 05 января 2012

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

...