Показать сообщение отдельно
  #15 (permalink)  
Старый 29.01.2012, 14:14
Аватар для poorking
prodigy
Отправить личное сообщение для poorking Посмотреть профиль Найти все сообщения от poorking
 
Регистрация: 01.11.2010
Сообщений: 503

Сообщение от function
Навигационные карты я может ещё и сгенерирую, а картинки даже не представляю как (ну только если разделить и в таблицу запихать, но меня как-то это вариант нерадует).
function,

Почему не радует? Не надо картинки, возьмите табличку + backround-color для клеток, и никаких map ненадо, но отображение вашей игры это вопрос второстепенный.

У вас будет модель, матрица ("двумерный массив") NxM в одних клетках 0, в других 1 (0 - тоннель, 1 - стенки), и еще у нее будет механизм генерации случайных игровых полей, повесите на нее событие "указатель наведен на клетку", в который передаются координаты клетки, обработчик проверит на какую клетку наведен указатель, на 0 или на 1, будет вести необходимые подсчеты, следить за ходом игры и все такое, сформирует параметры и будет инициировано событие модели "после наведения указателя на клетку" и в его обработчик (который будет вешать вид для себя) будут переданы необходимые для вида параметры, который (обработчик), например, будет перерисовывать всю картину или ее части, в зависимости от того какой у вас вид по функционалу. Контроллер - собственно тот механизм, который передает модели информацию о том, что сделал пользователь, иногда модели это не интересно, он может и напрямую общаться с видом, это естественно, если некоторые действия не влияют на ход игры, а только на ее отображение.

Таким образом - модель - независимый движок, к ней вы сможете потом подключить хоть canvas, хоть что угодно в качестве вида, контроллер - должен знать протоколы связи с моделью и видом, он может их менять, а вид должен знать только протокол чтения с модели. Рекомендую использовать паттерн Observable для реализации MVC, очень удобно, Observable можете подсмотреть у Kolyaj в CrossJS или в фреймворке Ext в ядре.

Я когда делал парочку аркад подобных чисто ради спорта, этим не пользовался (MVC), а когда пришло просветление - было лень переделывать ))
__________________
readOnly

Последний раз редактировалось poorking, 29.01.2012 в 14:17.
Ответить с цитированием