понедельник, 13 апреля 2015 г.

"Концентрация", "Память", "Пары"... И Starling

http://rablv.blogspot.com/2015/04/starling.html
Продолжая тему разработки небольших логических игр, я решил убить двух зайцев - продолжить нарабатывать навык программирования под платформу AIR и параллельно изучить фрэймворк Starling. Да и третий заяц тоже есть: прикрутить Старлинг к AIR и запустить всё это дело на Андроиде.
Сначала я хотел взяться за большой проект, но потом понял что лучше начать с малого и познакомиться с основными моментами работы со Старлинг на малом проекте - логической игрушке. И чем проще тем лучше.

В итоге в качестве подопытного кролика была выбрана игра правильное название которой на русском я до сих пор не знаю. То ли "Пары", то ли "Память", то ли "Концентрация". В общем игра где надо искать пары одинаковых карт среди карт, перевернутых рубашкой вверх.
Набросал для себя в блокноте простейший дизайн-документ из нескольких строк:

  1.  уровней сложности - 3;
  2.  максимальное количество плиток - 24 шт.
  3.  минимальное количество плиток - 12 шт.
  4.  графика - условная;
  5.  музыка - отсутствует.

Работа закипела.
Старлинг оказался очень дружелюбной вещью, с низким порогом вхождения. По сути привыкнуть пришлось только к ограничению на работу с векторной графикой. Я выработал нехорошую привычку широко пользоваться вектором и простой анимацией сварганенной в Adobe Flash и упакованной в библиотеку SWC, т.к. это легко и быстро, и плевать на производительность. Но Старлинг это безобразие не позволяет. Только растровая графика. С анимацией и импортом графики, конечно теперь сложнее - текстурные карты, атласные карты и прочая ерунда. Но ничего не поделать.
Разобравшись с работой с графикой в Старлинг осталось только эту самую графику нарисовать и накодить код.
Часть графики (кнопки "Меню" и "Рестарт") любезно предоставила предыдущая игра "Пятнашки". Фон нарисовал повеселее, аж из целых трёх цветов.

Очевидно что механика для данной игры (блин, как же всё таки её называть?) простейшая. Поэтому и прототип был накодирован в кратчайшие сроки. Однако как только было решено добавить немного анимации (переворачивание карт и удаление) вся структура игры пошла крахом. Пришлось отлавливать кучу событий, вводить дополнительные проверки. Код разрастался, отдавал душком и никак не хотел нормально работать. Психанув, полностью переписал большую часть. Результата нет. Некорректное взаимодействие анимации и логики являли на экран жалкое зрелище.
В общем времени было потрачено в пустую немало. Я бы даже сказал непростительно много. Но в итоге, конечно, верное решение было найдено. Хотя и не идеальное. Но заморачиваться и тормозить на одном месте уже больше не хотелось. Поэтому оставлю как есть.
Подготовив "комповскую" версию игры для браузера, принялся за мобильную AIR версию.
"Переподготовка" под Андроид была гораздо проще чем у "Пятнашек": всего-то и нужно было подогнать игру под разрешение девайса. Управление трогать не пришлось, т.к. в Старлинг по умолчанию используется система касаний (touch), а кликов и событий мыши как таковых нет.

В итоге получалась вполне играбельная вещь. Сам иногда сижу и в свою же игру играю. Мда уж.. А Старлинг мне конечно понравился. Думаю, буду теперь все игры делать используя его.



P.S в скором времени выложу урок по этой игре

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

Отправить комментарий