![]() |
обеспечить переход по уровням игры
привет, подскажите, как можно обеспечить наилучшим образом смену уровней в игре. пробую написать простенькую игру на базе MVC и никак не могу всунуть туда переход по уровням. кто должен за это отвечать?
|
Контроллер.
|
ок. контроллер. пускай есть 15 уровней. каждый уровень - это вьюшка отдельная, которая грузится по листнеру в контроллере? или это одна вьюшка, в которую подгружается data или VO? или надо делать 15 мувиклипов и в зависимости от номера уровня грузить тот или иной? мне нравится вариант, когда у меня одна вьюшка - GameLevelsView, в которую подгружается data с инфой об уровне и в зависимости от нее создаются новые и удаляются старые мувики. Как все таки лучше? может есть удачные примеры левел провайдеров?
|
1е решение или 2е. по желанию. все норм будет
|
Вьюшка одна.
|
мне вполне нравится вариант с одной вьюшкой. перейду к коду. предположим мы нажали кнопку Play, удалилось менюшка и задиспатчился кастомный ивент о начале нового уровня, который я слушаю в контроллере:
Код AS3:
Код AS3:
И вот, что мне не нравится, так это то, что во вьюшке мне приходится делать так: Код AS3:
|
Абстрактный класс AGameLevel, интерфейс IGameLevel, классы-наследники GameLevel001 ... GameLevel100.
Эти классы (классы, не экземпляры) складываем в массив _gameLevels. При повышении уровня создаем новый уровень - Код AS3:
|
Практика показывает, что хорошо бы сразу предусмотреть метод remove для класса-левела. И при создании нового уровня честно чистить старый (удалять листенеры, останавливать звуки и т.д.) перед удалением.
Что-то типа: Код AS3:
Впрочем, возможно, это только у меня такая необходимость. :) |
Wolsh, где хранится массив _gameLevels?
mikhailk, согласен. |
_gameLevels - это переменная класса основного контейнера, в котором будут открываться уровни.
С другой стороны, очень от игры зависит. Если каждый левел весит по 2-3 метра, их никто заранее не закачивает, в этом случае и массив объектов GameLevel, возможно, смысла большого не имеет. |
| Часовой пояс GMT +4, время: 22:31. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.