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

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

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

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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

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

В классе DriftSprite требуются только две переменные:

private int speed; private TiledLayer barrier;

Переменная speed определяет скорость спрайта, которая измеряется в пикселях за игровой цикл. Скорости 1 или 2 хорошо подходят для того, чтобы заставить спрайты дрейфовать. Большие значения создадут иллюзию того, что спрайты передвигаются самостоятельно.

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

Обе переменные класса DriftSprite инициализируются в конструкторе DriftSprite(), код которого представлен в листинге 12.1.

Листинг 12.1. Конструктор DriftSprite() инициализирует переменные скорости и слоя-барьера

public DriftSprite(Image image, int frameWidth, int frameHeight, int driftSpeed,

TiledLayer barrierLayer) {

super(image, frameWidth, frameHeight);

// инициализация генератора случайных чисел

rand = new Random();

// установить скорость

speed = driftSpeed;

// установить замощенный слой-барьер

barrier = barrierLayer;

}

Конструктор DriftSprite() вызывает родительский конструктор Sprite(), создающий основной спрайт, а затем инициализирует специальные переменные класса DriftSprite.

Метод update() – это интересная часть кода класса DriftSprite(). В листинге 12.2 приведен код этого метода.

Листинг 12.2. Метод update() класса DriftSprite перемещает Sprite в произвольном направлении и определяет столкновение со слоем-барьером

public void update() {

// временно сохранить положение

int xPos = getX();

int yPos = getY();

// переместить спрайт случайным образом, чтобы создать иллюзию дрейфа

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

// переместить влево

case 0:

move(-speed, 0);

break;

// переместить вправо

case 1:

move(speed, 0);

break;

// переместить вверх

case 2:

move(0, -speed);

break;

// переместить вниз

case 3:

move(0, speed);

break;

}

// проверить столкновение со слоем-барьером

if ((barrier != null) && collidesWith(barrier, true)) { //Если в новом положении детектировано столкновение, то необходимо вернуть спрайт в предыдущее положение

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

setPosition(xPos, yPos);

}

// перейти к следующему фрейму анимации спрайта

nextFrame();

}

Метод update() начинается с того, что сохраняется положение спрайта, поскольку эта информация может понадобиться позже, если произойдет столкновение спрайта со слоем-барьером. Затем спрайт случайным образом перемещается в одном из четырех возможных направлений: вверх, влево, вправо или вниз. Фрагмент кода в конце метода update() проверяет столкновение спрайта со слоем-барьером, чтобы убедиться, что значение barrier отлично от null. Этот код позволяет ограничивать перемещение спрайтов. Если определено столкновение, то спрайт возвращается в положение, предшествующее смещенному.

...

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

Если значение переменной barrier равно null, то спрайт будет ограничен в методе update(). Иначе говоря, вы можете создать свободно перемещающиеся спрайты, для чего конструктору DriftSprite()достаточно передать значение null. Если бы вы захотели добавить в игру High Seas птицу или летающего противника, вероятно, вы бы поступили именно так, ведь для такого объекта земля – не помеха.

Последний фрагмент кода update() класса дрейфующих спрайтов – вызов метода nextFrame(), который просто изменяет текущий фрейм анимации. Помните, что вы можете создавать спрайты и без анимации, в этом случае вызов nextFrame() ничего не изменит.

Новый удобный класс DriftSprite готов к использованию, поэтому можно перейти к рассмотрению кода самой игры. Давайте начнем с переменных.

Объявление переменных класса

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

private LayerManager layers;

private int xView, yView;

private TiledLayer waterLayer;

private TiledLayer landLayer;

private int waterDelay;

private int[] waterTile = { 1, 3 }; //В слое воды используются два различных анимационных изображения

private Image infoBar;

private Sprite playerSprite;

private DriftSprite[] pirateSprite = new DriftSprite[2];

private DriftSprite[] barrelSprite = new DriftSprite[2];

private DriftSprite[] mineSprite = new DriftSprite[5];

private DriftSprite[] squidSprite = new DriftSprite[5];

private Player musicPlayer;

private Player rescuePlayer;

private Player minePlayer;

private Player gameoverPlayer;

private boolean gameOver;

private int energy, piratesSaved;

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

Переменная infoBar хранит растровое изображение, используемое как фон информационной строки, в которой отображается энергия корабля и число спасенных пиратов. Затем создаются несколько спрайтов: пиратский корабль, два пирата и пара бочек, пять мин и пять осьминогов. Интересно заметить, что в игре больше не будут создаваться какие-либо спрайты. Позже вы узнаете, как повторно использовать спрайты, чтобы создать иллюзию того, что их число увеличилось.

Звуковые эффекты и музыка в игре воспроизводятся с помощью объектов класса Player. И наконец, состояние игры отражается переменными energy и piratesSaved.

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

Метод start() в игре High Seas выполняет инициализацию всех переменных класса. Например, следующий код создает изображение для информационной строки, а также замощенные слои воды и суши:

try {

infoBar = Image.createImage("/InfoBar.png");

waterLayer = new TiledLayer(24, 24, Image.createImage("/Water.png"), 32, 32);

landLayer = new TiledLayer(24, 24, Image.createImage("/Land.png"), 32, 32);

}

catch (IOException e) {

System.err.println("Failed loading images!");

}

Если вы вспомните, то в водном слое используются два анимационных элемента, имитирующих движение воды. Ниже приведен код, создающий эти элементы:

waterLayer.createAnimatedTile(1); waterLayer.createAnimatedTile(3);

Два анимационных элемента имеют различные индексы (1 и 3), это важно, поскольку элементы при создании анимации будут отображать различные картинки. Если использовались одинаковые инициализирующие значения, то вы не увидите никакой разницы. Также в этой главе вы разработали водный слой, результатом которого является массив целых чисел waterMap, содержащий карту слоя. Ниже приведен код, инициализирующий замощенный слой значениями из этого массива:

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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