Майкл Моррисон - Создание игр для мобильных телефонов

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

Майкл Моррисон - Создание игр для мобильных телефонов краткое содержание

Создание игр для мобильных телефонов - описание и краткое содержание, автор Майкл Моррисон, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Книга «Создание игр для мобильных телефонов» – это практическое руководство, которое поможет разработать и реализовать игру для мобильного телефона.

Книга написана простым языком, не содержит сложной и скучной теории программирования и шаг за шагом знакомит с методикой создания технологии «plug-and-play» применительно к созданию огромного количества игр.

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

Если вы любите играть в игры и занимаетесь программированием, то эта книга – для вас!

Перевод: К. Михалкин

Создание игр для мобильных телефонов - читать онлайн бесплатно ознакомительный отрывок

Создание игр для мобильных телефонов - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Майкл Моррисон
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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");

explosionPlayer = Manager.createPlayer(is, "audio/X-wav");

explosionPlayer.prefetch();

is = getClass().getResourceAsStream("GameOver.wav");

gameoverPlayer = Manager.createPlayer(is, "audio/X-wav");

gameoverPlayer.prefetch();

}

catch (IOException ioe) {

}

catch (MediaException me) {

}

Из приведенного кода видно, что для проигрывания музыки используется один проигрыватель MIDI-аудио, а также два проигрывателя для воспроизведения игровых звуковых эффектов (звуки взрыва и завершения игры). Последний фрагмент метода start() – это вызов метода, начинающего игру:

newGame();

Чуть позже вы познакомитесь с работой метода newGame(). А пока давайте рассмотрим метод update() – сердце большинства игровых мидлетов, включая Space Out.

Разработка метода update()

Метод update() вызывается один раз за игровой цикл и отвечает за обработку пользовательского ввода, он выполняет обновление спрайтов, проверку столкновений, добавление новых пришельцев, а также обеспечивает работу игры. Метод update() начинается с проверки окончания игры, если это так, то начинается новая игра нажатием клавиши Огонь.

if (gameOver) {

int keyState = getKeyStates();

if ((keyState & FIRE_PRESSED) != 0)

// старт новой игры

newGame();

// игра закончена, не нужно обновлять что либо

return;

}

Чтобы начать новую игру, необходимо вызвать метод newGame(), о котором вы узнаете чуть позже в этой главе. Обратите внимание, что метод update() завершает свою работу сразу после вывода метода newGame(), поскольку нет необходимости обновлять что-либо в игре, которая только начата. Этот метод прекратит свою работу даже в случае, если не будет нажата клавиша Огонь, поскольку игра окончена и нет необходимости обновлять игру. Если игра не окончена, метод update() продолжает отвечать на пользовательский ввод. Приведенный ниже код отвечает на нажатия клавиш Влево и Вправо, которые управляют автомобилем, а нажатием клавиши Огонь запускается ракета:

int keyState = getKeyStates();

if ((keyState & LEFT_PRESSED) != 0) {

playerSprite.setXSpeed(-2);

}

else if ((keyState & RIGHT_PRESSED) != 0) {

playerSprite.setXSpeed(4); //Автомобиль игрока движется вправо быстрее, чем влево, поскольку для движения влево включается задний ход. Это интересный штрих к игре

}

if ((keyState & FIRE_PRESSED) != 0) {

// воспроизвести звук огня

try {

Manager.playTone(ToneControl.C4 + 12, 10, 100);

}

catch (Exception e) {

}

addMissile(playerSprite);

}

playerSprite.update();

Если вы вспомните дизайн игры Space Out (рис. 18.1), то автомобиль игрока располагается у нижней границы экрана и может перемещаться по горизонтали влево или вправо. Код обработки нажатий клавиш устанавливает скорость автомобиля по оси X, таким образом, автомобиль перемещается в ответ на нажатие клавиши. Важно отметить, что скорость в направлении влево меньше скорости направления вправо. Эта разница объясняется тем, что автомобиль направлен вправо, следовательно, при движении влево он движется назад. В реальности автомобиль движется назад медленнее, чем вперед.

...

В копилку Игрока

Кроме того, что в игру Space Out добавлена доля реализма, такое различие скоростей несколько усложняет игру. Так, при движении влево сложнее скрыться от ракет.

Код обработки ввода реагирует на нажатие клавиши Огонь тоновым сигналом и вызовом метода addMissle(). О том, как работает этот метод, вы узнаете позже в этой главе, а пока важно отметить, что в этот метод передается спрайт игрока. Идея метода addMissle() заключается в том, что он запускает ракету спрайта, который передается в него в качестве параметра. Итак, вы можете вызвать метод addMissle() и передать в него спрайт игрока или пришельца, в результате будет запущена ракета.

Основная работа метода update() – это обновление спрайтов. Приведенный ниже код обновляет спрайты пришельцев и взрывов:

for (int i = 0; i < 3; i++) {

if (blobboSprite[i].isVisible()) {

blobboSprite[i].update();

blobboSprite[i].nextFrame();

}

if (jellySprite[i].isVisible()) { //Обновляются только видимые спрайты

jellySprite[i].update();

jellySprite[i].nextFrame();

}

if (timmySprite[i].isVisible()) {

timmySprite[i].update();

timmySprite[i].nextFrame();

}

if (explosionSprite[i].isVisible()) {

if (explosionSprite[i].getFrame() < 3) //Этот код создает анимацию взрыва, после чего спрайт взрыва исчезает

explosionSprite[i].nextFrame();

else

explosionSprite[i].setVisible(false);

}

}

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

...

Совет Разработчику

Чтобы сделать игру более эффективной и не создавать и не удалять объекты динамически, все спрайты создаются в начале игры, а затем скрываются и отображаются, чтобы создать эффект разрушения. В любой момент в игре «существуют» только видимые спрайты.

Следующий фрагмент метода update() достаточно велик, поскольку в нем реализуется большая часть игровой логики.

Код, о котором я говорю, – это код обновления ракет. Он очень важен, поскольку ход игры зависит от того, с каким спрайтом столкнется ракета – со спрайтом игрока или пришельца. Ниже приведен код, работающий со спрайтами ракет:

for (int i = 0; i < 10; i++) {

if (missileSprite[i].isVisible()) {

// ракета игрока?

if (missileSprite[i].getFrame() == 0) { //Индекс фрейма спрайта ракеты используется для определения типа ракеты

for (int j = 0; j < 3; j++) {

// ракета попала в пришельца Блоббо?

if (blobboSprite[j].isVisible())

if (missileSprite[i].collidesWith(blobboSprite[j], false)) {

// Воспроизвести звук разрушения

try {

Manager.playTone(ToneControl.C4 – 6, 100, 100);

}

catch (Exception e) {

}

// создать взрыв

addExplosion(blobboSprite[j]);

// спрятать спрайт и увеличить счет

blobboSprite[j].setVisible(false); //При столкновении спрайта ракеты игрока со спрайтом пришельца оба спрайта исчезают

missileSprite[i].setVisible(false);

score += 10;

break;

}

// ракета попала в пришельца Джелли?

if (jellySprite[j].isVisible())

if (missileSprite[i].collidesWith(jellySprite[j], false)) {

// воспроизвести звук разрушения

try {

Manager.playTone(ToneControl.C4 – 6, 100, 100);

}

catch (Exception e) {

}

// создать взрыв

addExplosion(jellySprite[j]);

// спрятать спрайт и увеличить счет

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

Интервал:

Закладка:

Сделать


Майкл Моррисон читать все книги автора по порядку

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




Создание игр для мобильных телефонов отзывы


Отзывы читателей о книге Создание игр для мобильных телефонов, автор: Майкл Моррисон. Читайте комментарии и мнения людей о произведении.


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

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