Показать сообщение отдельно
Старый 15.09.2010, 01:50
greegreeman вне форума Посмотреть профиль Отправить личное сообщение для greegreeman Найти все сообщения от greegreeman
  № 6  
Ответить с цитированием
greegreeman
 
Аватар для greegreeman

Регистрация: Jan 2010
Сообщений: 147
мне вполне нравится вариант с одной вьюшкой. перейду к коду. предположим мы нажали кнопку Play, удалилось менюшка и задиспатчился кастомный ивент о начале нового уровня, который я слушаю в контроллере:
Код AS3:
dispatcher.addEventListener(GameEvent.PROCESS_NEXT_LEVEL, onProcessNextLevel);
обрабатываю его так:
Код AS3:
private function onProcessNextLevel(e : GameEvent) : void {
	view.createGameLevel(model.currentLevel);
	model.increaseCurrentLevel();
}
как видно я передаю во вьюшку номер левела и сразу увеличиваю номер следующего уровня. во вьюшке я, зная какой номер уровня, подгружаю соответствующую графику.
И вот, что мне не нравится, так это то, что во вьюшке мне приходится делать так:
Код AS3:
switch(levelsNum) {
	case 1:
                // for example
		createSquares();
		createCircles(); 
		break;
	case 2:
		createTriangles();
		createPyramids();
		break;
и если у меня уровней двадцать, то что мне, лупить столько кейсов? а ведь еще логика вьюшки, а мне ведь еще надо чистить левел перед созданием нового. я уверен, что как-то это можно сделать грамотно, без нагромождения кода. подскажите, пожалуйста, у кого больше опыта, как именно это организовать