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

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

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

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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

jellySprite[j].setVisible(false);

missileSprite[i].setVisible(false);

score += 15;

break;

}

// ракета попала в спрайт пришельца Тимми?

if (timmySprite[j].isVisible())

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

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

try {

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

}

catch (Exception e) {

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

addExplosion(timmySprite[j]);

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

timmySprite[j].setVisible(false);

missileSprite[i].setVisible(false);

score += 20; //Поскольку пришельцы Тимми летают быстрее других, за его уничтожение дается больше очков

break;

}

}

}

// ракета пришельца?

else {

// ракета попала в спрайт автомобиля?

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

// воспроизвести звук взрывающегося автомобиля

try {

explosionPlayer.start(); //Если ракета пришельца попадает в автомобиль, воспроизводится звук взрыва

}

catch (MediaException me) {

}

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

addExplosion(playerSprite);

// установить спрайт игрока в исходное положение

playerSprite.setPosition(0,

getHeight() – playerSprite.getHeight() – 10); //Положение автомобиля игрока изменяется, чем создается иллюзия нового автомобиля

playerSprite.setXSpeed(4);

playerSprite.setYSpeed(0);

// спрятать спрайт ракеты

missileSprite[i].setVisible(false);

// проверить, закончена ли игра

if (carsLeft– == 0) {

// остановить музыку

try {

musicPlayer.stop();

}

catch (MediaException me) {

}

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

try {

gameoverPlayer.start();

}

catch (MediaException me) {

}

// спрятать спрайт автомобиля

playerSprite.setVisible(false);

gameOver = true;

return;

}

}

}

missileSprite[i].update();

}

}

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

...

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

Чтобы спрайты пришельцев не уничтожили друг друга, спрайты ракет разработаны так, что они не могут уничтожить спрайты пришельцев. Поэтому код работы со спрайтами ракет сначала проверяет, кому принадлежит ракета, и уже потом проверяется столкновение спрайта ракеты с другими спрайтами. Кроме того, это позволяет минимизировать число проверок столкновений, делая код игры более эффективным.

Если вы внимательно изучите приведенный код, то увидите, что при попадании ракеты в спрайт пришельца выполняются следующие действия:

1. воспроизводится тоновый сигнал;

2. создается спрайт взрыва;

3. спрайты пришельца и ракеты скрываются;

4. счет увеличивается;

Если ракета – это ракета пришельца, то выполняются следующие действия:

1. воспроизводится звуковой файл;

2. создается спрайт взрыва;

3. спрайт автомобиля возвращается в исходное положение у левого края экрана;

4. спрайт ракеты скрывается;

5. проверяется окончание игры.

Если значение переменной carsLeft показывает, что у игрока закончились автомобили, то игра заканчивается. Музыка останавливается, воспроизводится звук конца игры, спрайт автомобиля скрывается, а значение переменной gameOver становится равным true.

...

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

Другой способ сделать игровой код эффективнее – передать в метод collidesWith() в качестве второго параметра значения false. Если вы вспомните, то этот параметр определяет, будет ли использоваться пиксельный метод детектирования столкновений. В игре Space Out такой способ детектирования изображений не нужен.

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

if (score < 250) {

if (rand.nextInt() % 40 == 0) //Это самый простой уровень игры, который заканчивается, когда игрок набирает 250 очков

addAlien();

}

else if (score < 500) {

if (rand.nextInt() % 20 == 0)

addAlien();

}

else if (score < 1000) {

if (rand.nextInt() % 10 == 0)

addAlien();

}

else {

if (rand.nextInt() % 5 == 0) //Это самый сложный уровень игры, который начинается, когда игрок набирает 1000 очков

addAlien();

}

Если счет меньше 250, то вероятность добавления нового спрайта на каждом игровом цикле равна 1/40. Это соответствует самому простому уровню игры. Сложность игры постепенно увеличивается, пока счет не станет равным 1000. В этом случае вероятность появления пришельца в игровом цикле равна 1/5. Если вы задумались о том, сколько времени требуется для выполнения одного цикла, то знайте, что пришельцы появляются достаточно быстро. Последний фрагмент кода метода update() случайным образом запускает ракеты пришельцев:

if (rand.nextInt() % 4 == 0) {

switch (Math.abs(rand.nextInt() % 3)) {

// стреляет Блоббо

case 0:

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

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

addMissile(blobboSprite[i]);

break;

}

break;

// стреляет Джелли

case 1:

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

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

addMissile(jellySprite[i]);

break;

}

break;

// стреляет Тимми

case 2:

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

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

addMissile(timmySprite[i]);

break;

}

break;

}

}

Этот код случайным образом определяет, должен ли выстрелить пришелец. Соотношение 1 к 4 было выведено методом проб и ошибок. Если в результате выполнения кода должна быть запущена ракета, то выбирается ракета пришельца. Затем определяется видимый спрайт нужного типа, после чего вызывается метод addMissle() для запуска ракеты. Обратите внимание, что спрайт пришельца, запускающего ракету, передается в метод addMissle().

...

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

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

Вывод графики

Вывод графики на экран сравним с методом обновления игры. В листинге 18.3 приведен код метода draw() класса SOCanvas.

Листинг 18.3. Метод draw() класса SOCanvas выводит фоновое изображение и игровые слои, а также при необходимости сообщение о завершении игры

private void draw(Graphics g) {

// вывод звездного ночного неба

g.drawImage(background, 0, 0, Graphics.TOP | Graphics.LEFT);

// вывод слоев

layers.paint(g, 0, 0);

// вывод оставшегося числа автомобилей и счета

for (int i = 0; i < carsLeft; i++)

g.drawImage(smallCar, 2 + (i * 20), 2, Graphics.TOP | Graphics.LEFT); //Этот код выводит число оставшихся автомобилей

g.setColor(255, 255, 255); // white

g.setFont(Font.getFont(Font.FACE_SYSTEM,

Font.STYLE_PLAIN, Font.SIZE_MEDIUM));

g.drawString(Integer.toString(score), 175, 2,

Graphics.TOP | Graphics.RIGHT);

if (gameOver) {

// вывести сообщение о конце игры и счет

g.setColor(255, 255, 255); // white

g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD,

Font.SIZE_LARGE));

g.drawString("GAME OVER", 90, 40, Graphics.TOP | Graphics.HCENTER);

g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD,

Font.SIZE_MEDIUM));

g.drawString("Final Score : " + score, 90, 70, Graphics.TOP |

Graphics.HCENTER);

}

// вывести графику на экран

flushGraphics();

}

Первая часть кода выводит фоновое изображение на экран – звездное небо в пустыне. Затем одной строкой кода выводятся слои, за которыми следуют вывод оставшихся автомобилей и счет в игре. Если игра окончена, то выводится соответствующее сообщение, состоящее из слов «GAME OVER» и числа набранных очков.

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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