Бита и блоки в трех измерениях
Вот еще два полезных фрагмента кода. Первый удаляет шар и биту. Если этого не сделать, они так и будут висеть, как в кадре "game over" так и в кадре "level over".
function
rernoveBallAndPaddle() {
paddle.removeMovieClip();
ball.removeMovieClip();
}
Ну а следующая функция, removeBricks, удаляет блоки из этих же кадров. Вызывается при нажатии соответствующих кнопок.
function
removeBricks() {
for
(
var
i
=
0
; i
<
bricks.length; i
+
+
) {
bricks[i].removeMovieClip();
}
}
Первый кадр ролика – "start" – присваивает переменной gameLevel значение 1 и останавливает ролик.
gameLevel
=
1
;
stop();
Чтобы перейти к следующему кадру, надо нажать кнопку. Вот ее код.
on
(press) {
GotoAndStop(
"Play"
);
}
Все функции, которые мы рассмотрели, находятся в кадре "Play". Еще там есть команда, вызывающая функцию initGame. Когда уровень пройден, игра переходит к кадру "level over". Так как клип "action" находится в другом кадре, то все шары автоматически останавливаются. При нажатии единственной в этом кадре кнопки все блоки удаляются, и функция initGame может расставить их заново при переходе на следующий уровень.
on
(press) {
removeBricks();
gotoAndStop(
"Play"
);
}
При нажатии кнопки в кадре "game over" блоки тоже удаляются, но игра переходит к кадру "start".
on
(press) {
removeBricks();
gotoAndStop(
"Start"
);
}
К сведению
Игра, в общем то, лишь приблизительно воспроизводит трехмерный мир. Например, когда мяч отлетает в угол, компонент скорости z меняется таким образом, что суммарный вектор скорости остается неизменным Вы можете попробовать спрятать курсор перед началом игры с помощью Mouse.hide (), только не забудьте вернуть его на место по окончании игры с помощью Mouse.show ().
Другие возможности
Очень простой способ внести дополнение в эту игру – поместить какой-либо рисунок за блоками. Это можно сделать вообще без использования ActionScript. Можно также сделать, чтобы в конце каждого уровня пользователь видел другую картинку.