Первая часть кода выводит информационную строку – фоновое растровое изображение, индикатор энергии и число спасенных пиратов. Индикатор энергии рисуется с помощью метода fillRect, а текст выводится методом drawString.
Слои выводятся в середине метода draw, для этого нужна лишь одна строка кода, за которой следует сообщение об окончании игры. Если игра закончена, то выводится сообщение о конце игры – «GAME OVER», после чего появляется число спасенных пиратов – счет игры.
Начало новой игры
В разъяснениях я несколько раз упоминал о методе newGame. Пришла пора увидеть, как он работает. Листинг 12.4 содержит код этого метода, начинающего новую игру.
Листинг 12.4. Метод newGame класса HSCanvas инициализирует переменные игры, изменяет положение пиратского корабля и начинает воспроизведение музыкиprivate void newGame {
// инициализировать переменные игры
gameOver = false;
energy = 45;
piratesSaved = 0;
// показать спрайт пиратского корабля
playerSprite.setVisible(true); //В начале игры важно вывести на экран корабль игрока
// поместить игрока и переместить окно вида
placeSprite(playerSprite, landLayer); //При запуске игры корабль игрока помещается на карте случайно
xView = playerSprite.getX – ((getWidth – playerSprite.getWidth) / 2);
yView = playerSprite.getY – ((getHeight – playerSprite.getHeight) / 2);
layers.setViewWindow(xView, yView, getWidth,
getHeight – infoBar.getHeight);
// начать воспроизведение музыки
try {
musicPlayer.setMediaTime(0);
musicPlayer.start;
}
catch (MediaException me) {
}
}