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

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

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

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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

g.fillRect(40, 3, energy, 12);

// вывести слои

layers.paint(g, 0, infoBar.getHeight());

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)); //Вывести число спасенных пиратов

if (piratesSaved == 0)

g.drawString("You didn\'t save any pirates.", 90, 70,

Graphics.TOP | Graphics.HCENTER);

else if (piratesSaved == 1)

g.drawString("You saved only 1 pirate.", 90, 70,

Graphics.TOP | Graphics.HCENTER);

else

g.drawString("You saved " + piratesSaved + " pirates.", 90, 70,

Graphics.TOP | Graphics.HCENTER);

}

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

flushGraphics();

}

Первая часть кода выводит информационную строку – фоновое растровое изображение, индикатор энергии и число спасенных пиратов. Индикатор энергии рисуется с помощью метода 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) {

}

}

Метод newGame() начинается с инициализации трех основных игровых переменных. Обратите внимание, что значение переменной energy равно максимально возможному значению 45. Затем спрайт игрока становится видимым, для чего вызывается метод setVisible(). Это необходимо потому, что при окончании игры спрайт пиратского корабля исчезает с экрана. Спрайт игрока помещается в случайное место на карте, для чего вызывается метод placeSprite(). В соответствии с этим изменяется положение окна вида таким образом, чтобы спрайт оказался в центре окна. В конце вызовом методов setMediaTime() и start() начинается воспроизведение музыки.

Безопасное размещение спрайтов

Я могу понять, если вы устали, но я обещаю, что это последний фрагмент кода игры High Seas, который мы посмотрим. В листинге 12.5 приведен полный код метода placeSprite(), который отвечает за размещение спрайта в произвольной точке игровой карты.

Листинг 12.5. Метод placeSprite() класса HSCanvas помещает спрайт в произвольную точку карты так, чтобы он не совпадал со слоем – барьером

private void placeSprite(Sprite sprite, TiledLayer barrier) {

// попробовать поместить в произвольную точку

sprite.setPosition(Math.abs(rand.nextInt() % barrier.getWidth()) – //Спрайт помещается случайным образом

sprite.getWidth(), Math.abs(rand.nextInt() % barrier.getHeight()) -

sprite.getHeight());

// перемещать, пока не будет столкновения

while (sprite.collidesWith(barrier, true)) { //Проверить столкновение спрайта со слоем-барьером, продолжать перемещение спрайта до тех пор, пока он не столкнется со слоем-барьером

sprite.setPosition(Math.abs(rand.nextInt() % barrier.getWidth()) -

sprite.getWidth(), Math.abs(rand.nextInt() % barrier.getHeight()) -

sprite.getHeight());

}

}

Вы можете подумать, что разместить спрайт в произвольном месте на игровой карте – это просто получить несколько случайных чисел и более ничего. Помните, что на карте есть области, в которых не имеет смысла размещать бочку или осьминога… Я говорю о суше! Иначе говоря, важно разместить спрайт не только произвольно, но и грамотно. В результате, размещая спрайт, вы должны проверять, не попадает ли он на фрагмент суши.

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

Тестирование игры

Перейдем к тестированию игры. На рис. 12.12 показан старт игры. В этом запуске игры пират находится рядом с кораблем.

Рис. 12.12. Хорошее начало, пиратский корабль готов к спасательной миссии

После того как пират спасен, его спрайт исчезает с экрана, а счетчик спасенных пиратов увеличивается на 1 (рис. 12.13).

Рис. 12.13. Первый пират спасен – его спрайт исчез с карты, а счетчик спасенных пиратов увеличился на 1

В игре вы рано или поздно столкнетесь с другими спрайтами – минами, бочками и осьминогами (рис. 12.14).

Рис. 12.14. Дрейфующие мины и бочки – это противоположные объекты в игре. Первые отнимают энергию, вторые – прибавляют

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

Рис. 12.15. В итоге корабль попадает в щупальца осьминога и идет ко дну вместе с тремя спасенными пиратами

Если вы немного поиграете в High Seas, то она, вероятно, не покажется вам сложной. Дело в том, что ни один спрайт не умен достаточно, чтобы соперничать с игроком. О том, как решить эту проблему, речь пойдет в следующей главе, прочитав которую, вы узнаете о том, как использовать искусственный интеллект в играх.

Резюме

В этой главе было продемонстрировано все, что может понадобиться для создания мобильной игры. Несмотря на то что High Seas можно улучшить и сделать более интересной, я должен отметить, что немного увлекся ее созданием. Я не планировал приводить в этой книге весь код. Даже если вы немного утомились от объема приведенного кода, эта глава дала вам все, что может послужить основой для создания собственных игр.

Единственный недостаток игры High Seas – это то, что она не очень увлекательная. Верите или нет, но это был умышленный шаг. В следующей игре вы узнаете, как сделать плохих парней чуточку умнее. Но это еще не все. Также вы добавите еще одного плохого парня, действительно страшного!

В заключение

Возможно самое простое и значительное, что вы можете сделать с игрой High Seas, – это поэкспериментировать с замощенными слоями. Например, вы можете сделать слои больше, изменить острова и сушу так, чтобы получилась более интересная карта. Для этого требуется внести лишь небольшие изменения. Просто выполните следующие шаги для фрагментов кода, работающих с картой:

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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