Бита и блоки
Бита и блоки
Исходный файл: Paddlebricks.fla
Следующая игра намного сложнее двух предыдущих, хотя в ней используются те же основные элементы: мяч, бита и стены. Это классическая игра изначально называлась "Breakout" [14] .
На рис. 11.4 показан фрагмент игры. В дополнение к мячу и бите вверху экрана расположены пять рядов блоков. Цель игры – выбить блоки с помощью мяча. Когда будут выбиты все блоки, игра переходит на следующий уровень, где мяч летит с большей скоростью.
Рисунок 11.4. В игре «Бита и блоки» представлены ряды блоков, которые игрок должен выбить с помошью мяча
Задача проекта
Цель состоит в том, чтобы создать классическую игру игровых автоматов с битой и блоками. С помощью мыши можно перемещать биту по горизонтали. Мяч отскакивает от верхней и боковых стен и считается пропущенным, если пролетает мимо биты, сквозь нижнюю стену.
Когда мяч ударяется о блок, он отскакивает, а блок исчезает. После того как будут выбиты все блоки, игра переходит на другой уровень, где на экране окажутся те же блоки, но мяч будет двигаться быстрее. Просмотрите ролик Paddlebricks.fla, имеющийся на Web-сайте, чтобы увидеть, как работает игра.
Другое отличие этой игры от предыдущих состоит в том, что направление движения мяча зависит от того, в каком месте мяч ударится о биту. Если он попадает в левую часть биты, то отлетает влево, если же в правую, то вправо. Угол определяется тем, насколько далеко от центра биты ударился мяч.
Подход
Код для определения, в каком месте биты или стены ударился мяч, похож на код предыдущих двух игр. Единственное отличие заключается в том, что теперь мяч может отскакивать не только от верхней части биты, а и от любой ее точки. Таким образом, становится немного проще отбить мяч.
При столкновении мяча с блоком направление его движения по вертикали изменяется на противоположное. Блок же удаляется с экрана.
В предыдущих играх было достаточно определить, когда мяч ударяется о блок, для чего использовался метод hitTest. Теперь задача усложняется: надо рассмотреть все четыре стороны мяча по отношению ко всем четырем сторонам блока. Если мяч и блок полностью перекрываются, то считается, что произошло столкновение. С помощью метода hitTest можно было бы определить момент, когда мяч находится внутри прямоугольного блока. Но этого не достаточно для данной игры.
При столкновении мяча с битой рассчитывается расстояние между центром мяча и центром биты. Длина биты – 50 пикселов, так что это расстояние может быть чуть более 25 пикселов, либо со знаком "+", либо со знаком "-". Разделите данное число на 4 и получите значение между -7 и 7.
Новое значение будет присвоено переменной dx, которая определяет скорость движения мяча по горизонтали.
Это значит, что игрок может направлять мяч. Если, например, он отобьет мяч левым краем биты, мяч будет направлен резко влево. Если же отбить серединой биты, то мяч полетит прямо вверх.
Подготовка ролика
Для этого ролика нужно пять кадров, то есть больше, чем в ранее рассмотренных играх. Первый кадр – «start game». Он появляется только в начале игры. Щелчок по кнопке Play переводит игрока непосредственно в кадр «play», и игра начинается.
Второй кадр – это "start level". Он отображается, когда игрок переходит на второй и последующие уровни. Здесь щелчок по кнопке Play также переносит игрока в кадр play, то есть к началу нового уровня.
Третий кадр – "start ball". Он отображается, когда игрок пропускает мяч и хочет подать себе следующий. Внимательно рассмотрите исходный файл. Как видите, блоки присутствуют в третьем и четвертом кадрах, то есть в кадре "play". Таким образом, изображения блоков сохраняются, пока ролик переходит от кадра "play" к кадру "start ball". Иначе блоки будут расположены на своих исходных позициях.
Последний кадр – "game over". Щелчок по кнопке Play перенесет игрока обратно к кадру "start game", где значения некоторых важных параметров будут восстановлены.
Кроме организации расположения кадров необходимо создать блоки для третьего и четвертого кадров. В исходном ролике блоки имеют ширину 48 пикселов и высоту 8 пикселов. В примере расстояние между ними составляет 50x10 пикселов, таким образом, получается 5 рядов блоков по 11 блоков в каждом, что в общей сложности составляет 55 блоков.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Блоки try и except
Блоки try и except Все начинается с выяснения того, в каких именно блоках программного кода вы намерены контролировать возникновение нестандартных ситуаций, после чего этим блокам должны быть предоставлены обработчики исключений в соответствии с приведенным ниже
Блоки
Блоки JavaScript позволяет нам объединить несколько выражений в одно. Такое выражение называется блочным выражением или просто блоком. Составляющие его выражения заключают в фигурные скобки, например:{b = "12";c = a — b;}Как правило, блоки не существуют сами по себе. Чаще всего они
Блоки энергии
Блоки энергии Большинство твердых непрозрачных блоков вроде булыжника могут быть преобразованы в блоки энергии. Они не передают энергию блокам, расположенным рядом с ними, но могут активировать находящееся рядом устройство. Так происходит, когда вы нажимаете кнопку
Блоки
Блоки JavaScript позволяет нам объединить несколько выражений в одно. Такое выражение называется блочным выражением или просто блоком. Составляющие его выражения заключают в фигурные скобки, например:{b = "12";c = a — b;}Как правило, блоки не существуют сами по себе. Чаще всего они
Глава 31. Блоки
Глава 31. Блоки Типы блоков в OCR — системе ABBYY FineReaderБлоки — это заключенные в рамку участки изображения. Программой блоки выделяются для того с тем, чтобы указать OCR-системе, какие участки отсканированной страницы необходимо распознавать и в каком порядке. Кроме того по ним
Блоки BEGIN ... END
Блоки BEGIN ... END PSQL является структурированным языком. После объявления переменных процедурные операторы заключаются в операторные скобки BEGIN и END. В процессе разработки логики процедуры могут быть добавлены другие блоки; любой блок может включать другой блок, заключенный
Мяч и бита
Мяч и бита Исходный файл: Paddleball.fla Хотя предыдущая игра веселая, у нее есть один недостаток: нет никакой возможности выиграть. Вы просто играете до тех пор, пока не надоест или пока не проиграете.Игра станет более интересной, если позволить игроку управлять одной битой в то
Бита и блоки: три измерения
Бита и блоки: три измерения Исходный файл: 3Dpaddlebricks.fla Итак, в этой главе вы видели, как шар движется по плоскости. А что если шар должен будет двигаться в третьем измерении: в глубину?На рис. 11.5 показано, как это может выглядеть. Бита – это полупрозрачный квадрат на переднем
Рекурсивные блоки
Рекурсивные блоки Исходный файл: Blocks.fla Я встречал эту игру в разных вариациях под разными названиями. Основная идея ее в том, что экран заполнен большой решеткой, состоящей из цветных блоков. Игрок может нажать на блок, чтобы удалить его из решетки. Но чтобы удаление блока
ТЕМА НОМЕРА: 64 бита для всех
ТЕМА НОМЕРА: 64 бита для всех История знает много разных компьютеров и много разных технологических решений, применявшихся в них. Лампы, транзисторы, ИС, БИС и СБИС; CISC, RISC и VLIW; компьютеры большие и маленькие; процессоры удачные и неудачные. Компьютеры на троичной логике,
Как работают блоки питания персональных компьютеров? Какие блоки питания бывают?
Как работают блоки питания персональных компьютеров? Какие блоки питания бывают? http://pc-doc.spb.ru/atx.html Блок питания — жизненно важная часть компьютера, без которой его функционирование невозможно. Лишенный блока питания компьютер — всего лишь мертвая коробка, наполненная
Блоки
Блоки ActionScript позволяет нам объединить несколько выражений в одно. Такое выражение называется блочным выражением или просто блоком. Для выделения блочного выражения составляющие его выражения заключаются в фигурные скобки, например: { b = "12"; с = а — b; } Как правило, блоки
1. RGB (24 бита)
1. RGB (24 бита)
2. RGB (24 бита) + альфа (8 бит)
2. RGB (24 бита) + альфа (8 бит)