Гэри Розенцвейг - Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript

Здесь есть возможность читать онлайн «Гэри Розенцвейг - Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Данная книга посвящена программированию игр с помощью ActionScript. Здесь вы найдете подробные указания, необходимые для создания самых разных игр – аркад, головоломок, загадок и даже игровых автоматов. В тексте приведены исходные коды программ и детальные, доступно изложенные инструкции. Базовые принципы программирования ActionScript рассматриваются на примере игр, однако вы без труда сможете применить полученные знания и для разработки неигровых проектов, таких как Web-дизайн и реклама. Рекомендации Гэри Розенцвейга помогут вам не только придумывать занимательные игры и размещать их на Web-сайте, но и оптимизировать скорость их работы, а также защищать свои творения от несанкционированного копирования. Представленный в книге код несложно изменить для использования в других программах.
Книга предназначена для широкого круга читателей – создателей анимационных роликов, художников-оформителей, программистов и разработчиков Web-сайтов. Издание может также выступать в качестве практического пособия по изучению ActionScript.

Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript — читать онлайн ознакомительный отрывок

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Следующий фрагмент кода отвечает за анимацию лисы (6). Если лиса движется и не падает вниз (не прыгает вверх), то клип лисы переходит к следующему кадру. Благодаря этому ноги лисы «шагают». Если же лиса не движется или падает, то клип лисы переходит в первый кадр с изображением стоящей лисы.

В то время как горизонтальная позиция лисы постоянно находится в центре экрана, ее вертикальное положение может меняться. Вертикальное положение лисы задается свойством foxPos.y,а земля находится в вертикальной позиции 0. Значит, чтобы получить свойство _y клипа лисы, мы должны вычесть foxPos.yиз значения переменной floor (7).

В конце функции moveFoxвызываются еще три функции: moveBunniesотвечает за движение кроликов, drawObjectsперерисовывает блоки, кроликов и орехи в соответствии с новым положением игрового поля относительно лисы, а функция getAcornsпроверяет, не съела ли лиса какой-нибудь из орехов.

function moveFox() {

(1) →// Определяем границы возможного перемещения лисы.

foxBounds = determineBounds(foxPos);

(2) →// Если под лисой пусто, она начинает падать.

if ((foxBounds.bottom > 0) and (!falling)) falling = true;

(3) →// Падение.

if (falling) checkFall();

(4) →// Если нажата левая стрелка, то движемся влево, если там нет препятствия.

if (Key.isDown(Key.LEFT)) {

if (foxSpeed < foxBounds.left) {

foxPos.x -= foxSpeed;

}

if (foxPos.x < 0) foxPos.x = 0;

fox._xscale = 25;

moving = true;

// Если нажата правая стрелка, то движемся вправо, если там нет препятствия.

} else if (Key.isDown(Key.RIGHT)) {

if (foxSpeed < foxBounds.right) {

foxPos.x += foxSpeed;

}

if (foxPos.x > worldEnd) foxPos.x = worldEnd;

fox._xscale = -25;

moving = true;

// Если не движемся.

} else {

moving = false;

}

(5) → // Если стоим на поверхности и нажат пробел – прыгаем.

if (Key.isDown(Key.SPACE) and (!falling)) {

fallSpeed = jumpPower; // Прыжок = падение вверх

falling = true;

if (!moving) { // Используем анимацию прыжка только если лиса не идет.

fox.gotoAndPlay("jump");

}

}

(6) → // Если идет и не падает, то анимируем ходьбу.

if (moving and !falling) {

fox.nextFrame();

// Если не идет или падает – кадр со стоящей лисой.

} else if (!moving and !falling) {

fox.gotoAndStop(1);

}

(7) → // Позиция лисы по вертикали.

fox._y = floor – foxPos.y;

// Активируем кролика.

moveBunnies();

// Перерисовываем все объекты в соответствии с новой позицией.

drawObjects();

// Проверяем, не съеден ли орех.

getAcorns();

}

Функция determineBoundsвыглядит сложно, но на самом деле она двольно простая. Вначале мы предполагам, что пространство слева, справа и сверху вокруг лисы пустое на расстоянии 1000 пикселов. Также полагаем, что нет пустого пространства под лисой. Вертикальную позицию лисы мы храним в свойстве pos.y.

Далее следует цикл по всем объектам типа box.Вычисляется расстояние от лисы до блока и записывается в переменные dxи dy.

Если блок занимает то же положение по вертикали, что и лиса (другими словами – если он на том же расстоянии от земли), то функция проверяет, находится ли он справа или слева. Далее проверяется, если расстояние до блока справа (слева) меньше текущего значения bounds.right (.left), то значение bounds. right (. left)переопределяется. Аналогично проверяются вертикальные границы.

После того как все блоки были проверены, объект boundsсодержит горизонтальные и вертикальные границы для лисы в текущем положении. Например, если bounds.leftравно 20, то ближайший к лисе блок справа находится на расстоянии 20 пикселов.

Функция determineBoundsнаписана в достаточно общем виде, чтобы ее можно было использовать как для лисы, так и для кроликов. В качестве аргумента posфункции можно передать как объект foxPos,так и элемент массива objects,например кролика.

function determineBounds(pos) {

// Определяем границы перемещения.

var bounds = {left:1000,right:1000,top:1000,bottom:pos.y};

// Цикл по всем объектам.

for(var i=0;i

// Рассматриваем только блоки.

if (objects[i].type == "box") {

var dx = objects[i].x – pos.x;

var dy = objects[i].y – pos.y;

// Если блок в той же вертикальной позиции.

if ((dy >= 0) and (dy <= 50)) {

// Определяем, является ли ближайшим левый блок.

if ((dx+50 <= 0) and (Math.abs(dx+50) < bounds.left)) {

bounds.left = Math.abs(dx+50);

// Определяем, является ли ближайшим правый блок.

} else if ((dx >= 0) and (dx < bounds.right)) {

bounds.right = dx-50;

}

}

// Блок в той же горизонтальной позиции.

if ((dx >= -50) and (dx <= 50)) {

// Определяем, является ли ближайшим нижний блок.

if ((dy+50 <= 0) and (Math.abs(dy+50) <=

bounds.bottom)) {

bounds.bottom = Math.abs(dy+50);

// Определяем, является ли ближайшим верхний блок.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript»

Представляем Вашему вниманию похожие книги на «Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Аркадий Птицын - Чужие игры (СИ)
Аркадий Птицын
Аркадий Птицын - Чужие игры
Аркадий Птицын
Аркадий Аверченко - Друг
Аркадий Аверченко
Отзывы о книге «Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript»

Обсуждение, отзывы о книге «Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x