Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
Шрифт:
// Рисуем грани куба.
function drawLines {
for(i=0;i<lines.length;i++) {
loc1 = plotPoint(points[lines[i].p1]);
loc2 = plotPoint(points[lines[i].p2]);
this["line"+ij._x = locl.x;
this["line"+i]._y = locl.y;
this["line"+i]._xscale = loc2.x-loc1.x;
this["line"+i]._yscale = loc2.y-loc1.y;
this["line"+i]._alpha = loc1.z+100;
}
}Внимание!
Важно, чтобы высота и ширина клипа линии была равна 100 пикселам. Тогда масштаб 100 % будет соответствовать 100 пикселам по ширине
Все, что осталось сделать для того, чтобы к кубу были добавлены грани, – это задать вызов функции makeLines при запуске ролика, а также функцию drawLines из функции reposition. На рис. 5.12 показан полученный результат. Весь ролик вы можете увидеть, запустив файл 3Dcube.fla на Web-сайте.
Рисунок 5.12. Трехмерный куб, состоящий из точек и линий
Другие возможности
Конечно, вы можете создавать фигуры более сложные, чем куб. На рис. 5.13 изображена небольшая модель космического корабля. Эта программа, содержащаяся в файле 3Dspaceship.fla на Web-сайте, обходится без функции drawPoints, хотя и использует массив points для задания углов фигуры.
Рисунок 5.13 . Простая трехмерная модель космического корабля; в ролике корабль вращается
Поэкспериментировав с наборами точек и линий, нетрудно создать множество различных трехмерных моделей. Вы можете сделать так, чтобы пользователь управлял вращением и наклоном объекта, или задать фиксированный наклон и вращение модели с постоянной скоростью. Можно даже изменять центральную точку экрана, чтобы создать иллюзию движения модели.
Глава 6 Игрушки и безделушки
• Волшебный хрустальный шар
• Музыкальный автомат
• Аналоговые часы
• Лавовая лампа
• Игра "Жизнь"
Прежде чем заняться созданием «полномасштабных» игр, давайте посмотрим, как устроены различные игрушки и безделушки. Их нельзя назвать собственно играми, поскольку у них нет цели и возможности ведения счета, однако они представляют собой приложения, которые могут работать автономно. Прежде всего рассмотрим пару элементарных интерактивных программ: волшебный хрустальный шар и музыкальный автомат, затем – два сложных, но неинтерактивных ролика: часы и лавовая лампа. В завершение мы рассмотрим очень старую и известную игру "Жизнь".
Волшебный хрустальный шар
Исходный файл: Crystalball.fla
Наверное, самой распространенной интерактивной программой, которую можно встретить в Internet, является программа-предсказатель, работающая на основе случайных чисел. Обычно она называется "Magic Eight Balls" (Восемь волшебных шаров), по имени популярной игрушки Tyco.
На рис. 6.1 показано, как может выглядеть подобная игра.
Рисунок 6.1 . Лиса ответит на ваш вопрос после того, как вы щелкните по хрустальному шару
Задача проекта
После щелчка по шару лиса помашет лапами и пользователь получит ответ, который будет выбран наугад из списка.
Подход
Наиболее сложной задачей в данном ролике является создание изображений и анимации. Сценарий же довольно прост.
Подготовка ролика
Сначала рассмотрим, как выполняется анимация. Ролик состоит из двух частей. Первая представляет собой статический кадр, который выглядит, как показано на рис. 6.1. Ролик будет запушен после щелчка по хрустальному шару.
Единственным необходимым элементом в этом ролике является команда stop, помещаемая в любой слой. На рис. 6.2. показана главная временная шкала ролика. Строчная буква "а" в первом кадре второго слоя (слоя "Text") обозначает, что этому кадру назначен код ActionScript, в данном случае команда stop.
Рисунок 6.2. Главная временная шкала содержит полную анимацию хрустального шара
Устройство главной временной шкалы зависит от фантазии аниматора. В рассматриваемом примере изображение лисы состоит из основного слоя и одного слоя для каждой руки. Изображение шара также включает несколько слоев.
Особое внимание следует обратить на то, как анимация развертывается во времени. Первый кадр представляет собой статический кадр без анимации, он содержит текст (см. рис. 6.1) и невидимую кнопку, которая помешается поверх хрустального шара.
Кнопка создается следующим образом: создайте новую кнопку, при помоши любой цветной области (например, зеленого прямоугольника) придайте ей нужную форму и поместите в один из верхних слоев главной временной шкалы. На данном этапе кнопка будет видна (рис. 6.3).
Нам необходимо, чтобы кнопка была активной и в тоже время скрытой от пользователя. Для этого в панели Properties выберите эффект Alpha и установите значение прозрачности 0 % (рис. 6.4). Можно просто заполнить в кнопке только кадр Hit, тогда она также будет не видна пользователю, но активна.
Примечание
Эффект Alpha назван по аналогии с термином "alpha channel" (альфа-канал), который используется для описания изображений. Считается, что графическое изображение состоит из четырех каналов: красного, зеленого, синего и альфа. Первые три канала определяют цвет пикселов, последний – их прозрачность. Если значение альфа-канала равно 0, изображение совершенно прозрачно. Поэтому при установке свойства Alpha в значение 0 flash-элемент станет невидимым.