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

Тут можно читать онлайн Гэри Розенцвейг - Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript - бесплатно ознакомительный отрывок. Жанр: comp-programming. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    3.3/5. Голосов: 101
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

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

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

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

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

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

Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Гэри Розенцвейг
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Последний кадр – "game over". Щелчок по кнопке Play перенесет игрока обратно к кадру "start game", где значения некоторых важных параметров будут восстановлены.

Кроме организации расположения кадров необходимо создать блоки для третьего и четвертого кадров. В исходном ролике блоки имеют ширину 48 пикселов и высоту 8 пикселов. В примере расстояние между ними составляет 50x10 пикселов, таким образом, получается 5 рядов блоков по 11 блоков в каждом, что в общей сложности составляет 55 блоков.

...

Совет

Для того чтобы не именовать 55 блоков на рабочем поле, подумайте, а не начать ли игру вовсе без блоков, а затем воспользоваться оператором attachMovie, чтобы добавить каждый блок с помощью кода. Хотя данная техника здесь не применяется, можно посмотреть, как она реализована в следующей игре этой главы.

К сожалению, каждому блоку должно быть присвоено имя, чтобы код мог его распознать. В исходном файле им назначены имена от а1до а55.Клип с мячом называется «ball», а с битой – «paddle».

Создание кода

Прежде чем будет запущен кадр игры, в кадре «start game» необходимо определить две важные переменные: начальную скорость движения мяча по вертикали и количество мячей, которые могут быть поданы.

dy = 3;

numBalls = 3;

stop();

Когда происходит переход к кадру «play», с помощью клипа «actions» можно регулярно вызывать функции. В данной игре все столкновения с мячом или стенами должны быть учтены в функции moveBall,но для блоков была создана отдельная функция – checkCollisions.

onClipEvent(load) {

_root.startBall();

}

onClipEvent(enterFrame) {

_root.moveBall();

_root.movePaddle();

_root.checkCollisions();

}

Когда начинается кадр «play», подается мяч. Положение мяча определяется тем, где он появляется на рабочем поле. Скорость мяча по горизонтали всегда равна 3, направление движения – вправо. Скорость по вертикали указывается в первом кадре, где величине dyбыло присвоено значение 3. Однако это значение изменится перед следующим уровнем. Вдобавок к параметрам мяча воспользуйтесь возможностью и установите некоторые значения, которые не будут изменяться во время игры.

function startBall() {

// Определяем начальное положение мяча.

x = ball._x;

y = ball._y;

// Устанавливаем начальную скорость по горизонтали.

dx = 3;

// Прячем курсор.

Mouse.hide();

// Задаем значения констант.

rightWall = 550;

leftWall = 0;

topWall = 0;

bottomWall = 400;

ballRadius = ball._width/2;

paddleTop = paddle._y-paddle._height/2;

paddleBottom = paddle._y+paddle._height/2;

}

Следующая функция управляет битой, выравнивая ее по горизонтали в соответствии с движением мыши.

// Бита следует за курсором.

function movePaddle() {

paddle._x = _xmouse;

}

Следующая функция покажется вам знакомой, так как она очень похожа на функцию moveBall,которая используется в других играх этой главы. Однако есть и некоторые отличия. Для того чтобы узнать, ударился ли мяч о биту, код проверяет, полностью ли они перекрываются (13). Затем, если все-таки столкновение произошло, скорость мяча по горизонтали определяется тем, где именно мяч ударился о биту (14). К тому же код для определения, пропущен ли мяч, проще, так как он просто проверяет, пролетел ли мяч сквозь нижнюю стену или нет (15).

function moveBall() {

// Изменяем горизонтальное и вертикальное положение мяча.

x += dx;

y += dy;

// Проверяем, находится ли мяч у правой стены.

if (x+ballRadius > rightWall) {

overshoot = (x+ballRadius) – rightWall;

x -= overshoot*2;

dx *= -1;

}

// Проверяем, находится ли мяч у левой стены.

if (x-ballRadius < leftWall) {

overshott = leftWall – (x-ballRadius);

x += overshoot*2;

dx *= -1;

}

// Проверяем, находится ли мяч у верхней стены.

if (y-ballRadius < topWall) {

overshoot = topWall – (y-ballRadius);

y += overshoot*2;

dy *= -1;

}

(13) →// Находится ли мяч там, где должен удариться о биту?

if ((y+ballRadius > paddleTop) and (y-ballRadius < paddleBottom)) {

// Находится ли там бита?

paddleLeft = paddle._x-(paddle._width/2);

paddleRight = paddle._x+(paddle._width/2);

if ((x+ballRadius > paddleLeft) and (x-ballRadius < paddleRight)) {

// Удар о биту.

overshoot = paddleTop – (y+ballRadius);

y += overshoot*2;

dy *= -1;

(14) →// Указываем горизонтальную скорость мяча

// в зависимости от места соприкосновения мяча и биты.

dx = (ball._x – paddle._x)/4;

} else {

// Мяч пролетел мимо биты

passedPaddle = true;

}

}

// Проверяем, пролетел ли мяч мимо биты.

(15) →if (y > bottomWall) {

Mouse.show();

if (numBalls == 0) {

// Больше мячей нет, конец игры.

gotoAndPlay("game over");

} else {

// Еще остался мяч.

numBalls–;

gotoAndPlay("start ball");

}

}

// Определяем расположение мяча.

ball._x = x;

ball._y = y;

}

Для того чтобы узнать, ударил ли мяч по блоку, код проверяет все 55 блоков. Блок с горизонтальным положением равным -1000 пикселов уже был сбит, такие блоки игнорируются. В противном случае вызывается функция brickHit,чтобы определить, перекрываются ли мяч и блок. Если да, то блок удаляется, а мяч отталкивается от него. Обратите внимание на переменную leveldone.Изначально ее значение равно true, но оно изменяется на false, как только встречается блок, который не был сбит. Если значение переменной leveldoneвсе еще остается истинным после того, как были использованы все мячи, игроку удалось удалить все блоки. Игра переходит к кадру «start level», но прежде увеличивается скорость мяча по вертикали, то есть переменная dy.

...

Совет

Необходимо проверить, превышает ли скорость мяча по вертикали значение 7, если да, то нужно снова присвоить ей значение 7. Это вызвано тем, что блоки имеют 8 пикселов в высоту. Если скорость мяча будет равна 8 пикселам или более, тогда мяч будет перелетать через блоки, не выбивая их. К счастью, скорость, равная 7, и так слишком велика – даже хороший игрок долго не продержится.

function checkCollisions() {

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

ballTop = ball._y – ball._height/2;

ballBottom = ball._y + ball._height/2;

ballLeft = ball._x – ball._width/2;

ballRight = ball._x + ball._width/2;

// Допускаем, что уровень пройден.

leveldone = true;

// Выясняем, ударил ли мяч по блоку.

for (i=1; i<=55; i++) {

brick = _root[“a”+i];

// Проверяем, есть ли еще блоки вокруг.

if (brick._x <> -1000) {

if (brickHit(brick)) {

// Если по блоку ударили,

// его нужно удалить с экрана.

brick._x = -1000;

// Изменяем направление движения мяча.

dy *= -1;

} else {

// Блоки еще остались, так что уровень

// не закончен.

leveldone = false;

}

}

}

// Все ли блоки уже выбиты?

if (leveldone) {

// Начать новый уровень.

Mouse.show();

gotoAndPlay("start level");

// Увеличиваем скорость движения мяча по вертикали.

dy += 1;

if (dy > 7) dy=7;

}

}
...

Совет

Обратите внимание, что в функции hitBrickнаходятся четыре вложенных оператора if. Возможно, вам будет интересно, почему не написать четыре условия в линию, соединив их оператором AND. Дело в скорости. С вложенными операторами if, если одно из условий оказалось ложным, программа не будет проверять остальные. Таким образом, значительно сократится объем работы, которую выполняет программа, и скорость игры увеличится. С операторами AND программе Flash придется проверять все четыре условия, даже если первое из них ложное.

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

Интервал:

Закладка:

Сделать


Гэри Розенцвейг читать все книги автора по порядку

Гэри Розенцвейг - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript, автор: Гэри Розенцвейг. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x