53. Puzzle Part4. Создаем игровое меню

Game – Серия статей посвященных разработке flash-игр на языке ActionScript. Игры для соц.сетей и мобильных платформ iOS, Android.
http://flashpress.ru/blog/category/game/
Создаем flash-игру Пазл(Puzzle-game):
  1. Puzzle Part1. Генерируем сетку пазла
  2. Puzzle Part2. Разрезаем картинку на кусочки
  3. Puzzle Part3. Прикручиваем игровую логику
  4. Puzzle Part4. Создаем игровое меню
  5. Puzzle Part5. Добавляем уровни сложности (скоро)
  6. Хочу продолжение > хочу

В этой части серии у нас будут созданы много дополнительных классов. Что бы вам было проще ориентироваться какой класс в каком пакете(каталоге) должен лежать – посмотрите на эту схему:
puzzle-part4-1


Классы PuzzleElement и ElementData остались без изменений:


Закрыть PuzzleElement.as


Закрыть ElementData.as


В классе GridEvent.as появился новый параметр error:


Закрыть GridEvent.as


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



Вот как выглядит обновленный класс PuzzleGrid.as:


Закрыть PuzzleGrid.as


В строке 103 мы отправляем событие об окончании перемещения, а в строке 104 проверяем значение переменной error у события. Смысл этого в том что, в классе который случает это событие, мы определяем можно ли сделать этот ход. Если ход сделать нельзя, то событию передается значение error=true, и в строке 107 мы возвращаем элемент в исходное положение. Метод set Enabled делает сетку пазла активной или не активной для мышиных событие, а так же делает сетку полупрозрачной если она не активна. Метод MoveTo отправляем переданный элемент на свое место.


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


Закрыть PuzzleModel.as


В пакете(каталоге) puzzle/utils/ мы создали вспомогательный класс PuzzleTimer.as и класс-событие для этого таймера PTimerEvent.as:


Закрыть PuzzleTimer.as


Закрыть PTimerEvent.as



Вот собственно и сам класс с менюшкой для приложения PuzzleMenu.as:


Закрыть PuzzleMenu.as

Очень важно понять что в этом классе мы не делаем ни каких действий с игровой сеткой или моделькой. Этот компонент только отправляет события о том что произошел клик на ту или иную кнопку. Далее эти события отлавливаются в базовом классе PuzzleApp. В базовом классе проверяется возможность выполнить это действие, и уже в зависимости от результата мы сообщаем обратно классу PuzzleMenu информацию о том что было выполнено действие и надо что то изменить в классе меню(например заблокировать кнопку или поменять текст на кнопке пауза). Смысл этого в том что бы отделить логику игры от визуальных компонентов, т.е. наш визуальный компонент PuzzleMenu только сообшает события о нажатии на кнопки, а все остальные действие для реализации нажатия выполняются в другом классе.

Класс MenuEvent выглядит следующим образом:


Закрыть MenuEvent.as


Главный класс приложения PuzzleApp должен выглядеть так:


Закрыть PuzzleApp.as


Вот такая флешка должна получиться в итоге:

Здесь должна быть флешка. Установите Flash Player

Скачать исходники можно здесь.

Создаем flash-игру Пазл(Puzzle-game):
  1. Puzzle Part1. Генерируем сетку пазла
  2. Puzzle Part2. Разрезаем картинку на кусочки
  3. Puzzle Part3. Прикручиваем игровую логику
  4. Puzzle Part4. Создаем игровое меню
  5. Puzzle Part5. Добавляем уровни сложности (скоро)
  6. Хочу продолжение > хочу

Да прeбудет с вами Flash.
Serious Sam
Эту статью прочитали 2410 раз

Возникли вопросы по статье? Не стесняйтесь спрашивать в комментариях или любым другим способом на странице Контакты .

Присоединяйтесь к нам в социальных сетях: ВКонтакте , Twitter и Facebook
Понравилась статья? Буду благодарен если вы поделитесь ссылкой с друзьями:


Комментарии ВКонтакте:




Комментарии Facebook:




Комментарии WordPress: