blobboSprite[i].setFrameSequence(sequence5);
blobboSprite[i].setVisible(false);
// Создать спрайт пришельца Джелли
jellySprite[i] = new MovingSprite(Image.createImage("/Jelly.png"), 21, 21, 1, 4,
MovingSprite.BA_BOUNCE, this); //Спрайт пришельца Джелли отталкивается от границы экрана
jellySprite[i].setFrameSequence(sequence3);
jellySprite[i].setVisible(false);
// Создать спрайт пришельца Тимми
timmySprite[i] = new MovingSprite(Image.createImage("/Timmy.png"), 21, 11, 5, 0,
MovingSprite.BA_WRAP, this); //Если спрайт пришельца Тимми достигает границы экрана, то он появляется у противоположной границы
timmySprite[i].setFrameSequence(sequence3);
timmySprite[i].setVisible(false);
// Создать спрайты взрывов
explosionSprite[i] = new Sprite(Image.createImage("/Explosion.png"), 21, 21);
explosionSprite[i].setVisible(false);
}
// создать спрайты ракет
for (int i = 0; i < 10; i++) {
missileSprite[i] = new MovingSprite(Image.createImage("/Missiles.png"),
11, 11, 0, 0,MovingSprite.BA_HIDE, this);
missileSprite[i].setVisible(false); //Все спрайты в игре сначала скрыты
}
}
catch (IOException e) {
System.err.println("Failed loading images!");
}Спрайт игрока создается как объект класса MovingSprite с обработкой достижения спрайтом границы экрана. Остальные спрайты – это также движущиеся спрайты, но с различными скоростями и действиями по достижении границы экрана. Например, скорость пришельца Jelly по оси Х равна 1, а по оси Y – 4, а скорость спрайта пришельца Timmy по оси X равна 5, а по оси Y – 0. Спрайты пришельцев Blobbo и Jelly отталкиваются от границ экрана, спрайт Timmy при достижении границы экрана появляется у противоположной стороны, а спрайты ракет скрываются по достижении границы экрана. Наконец, в игре есть анимационный спрайт – спрайт взрыва, который остается неподвижным. Все спрайты за исключением спрайта игрока скрываются перед началом игры. Затем спрайты добавляются в менеджер слоев, который отвечает за очередность и отрисовку спрайтов. Ниже приведен код работы с менеджером слоев:
layers = new LayerManager();
layers.append(playerSprite);
for (int i = 0; i < 3; i++) {
layers.append(blobboSprite[i]);
layers.append(jellySprite[i]);
layers.append(timmySprite[i]);
layers.append(explosionSprite[i]);
}
for (int i = 0; i < 10; i++) {
layers.append(missileSprite[i]);
}Несмотря на то что в игре Space Out это не столь значительно, не забудьте, что порядок добавления спрайтов в менеджер слоев определяет порядок вывода их на экран, Z-глубину, – первый спрайт, добавленный с помощью метода append(), будет выведен на экран поверх остальных. Но это не относится к игре Space Out, поскольку порядок вывода спрайтов на экран в ней не важен. Звуковые эффекты и музыка играют важную роль в игре Space Out, что, вероятно, неудивительно. Ниже приведен код, выполняющий инициализацию проигрывателей:
try {
InputStream is = getClass().getResourceAsStream("Music.mid");
musicPlayer = Manager.createPlayer(is, "audio/midi");
musicPlayer.prefetch();
musicPlayer.setLoopCount(-1);
is = getClass().getResourceAsStream("Explosion.wav");