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

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

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

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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

Две переменные – объекты класса Image – используются для хранения фонового изображения и изображения головы цыпленка, жизни. Хотя эти изображения очень важны в игре, все же сердце Henway – это спрайты. Переменная chickenSprite – это спрайт цыпленка, а массив carSprite хранит спрайты всех четырех автомобилей. Поскольку при нажатиях на клавиши цыпленок перемещается на равные расстояния, то нет необходимости создавать переменную скорости. Однако автомобили движутся с различными скоростями, поэтому необходим массив carYSpeed – массив скоростей автомобилей вдоль оси Y.

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

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

Как вы знаете, при создании объекта холста класса HCanvas вызывается конструктор. Кроме того, что он устанавливает частоту кадров игры, в нем выполняется очистка экрана и обнуление задержки ввода:

// установить частоту кадров (30 кадров/с)

frameDelay = 33;

// обнулить задержку ввода

inputDelay = 0;
...

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

Помните, что частота кадров рассчитывается как обратная величина времени между кадрами в секундах. Поэтому, если перевести 33 мс в секунды, то получится 0.033 с. Если разделить 1 на 0.033, то получится приблизительно 30, то есть частота равна 30 кадров/с.

Смысл переменной inputDelay станет ясен чуть позже, когда вы узнаете, как она применяется для контролирования пользовательского ввода. Метод start() игры Henway очень важен, поскольку выполняет ряд особых инициализаций в игре. Например, следующий код инициализирует три основные глобальные переменные:

gameOver = false;

numLives = 3;

score = 0;

Метод start() также загружает изображения и создает игровые спрайты:

try {

background = Image.createImage("/Highway.png");

chickenHead = Image.createImage("/ChickenHead.png");

chickenSprite = new Sprite(Image.createImage("/Chicken.png"), 22, 22);

chickenSprite.setPosition(2, 77); //Спрайт цыпленка помещается на траве в зоне старта, в левой части экрана

carSprite[0] = new Sprite(Image.createImage("/Car1.png"));

carSprite[0].setPosition(27, 0); //Этот автомобиль, также как и другие, помещается на дороге

carYSpeed[0] = 3;

carSprite[1] = new Sprite(Image.createImage("/Car2.png"));

carSprite[1].setPosition(62, 0);

carYSpeed[1] = 1;

carSprite[2] = new Sprite(Image.createImage("/Car3.png"));

carSprite[2].setPosition(93, 67);

carYSpeed[2] = -2;

carSprite[3] = new Sprite(Image.createImage("/Car4.png"));

carSprite[3].setPosition(128, 64);

carYSpeed[3] = -5;

}

catch (IOException e) {

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

}

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

...

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

Этот код приводит к вопросу о том, как будет вести себя приложение в зависимости от модели мобильного телефона. В нашем случае игра Henway создана для эмулятора J2ME, размер экрана которого 180 177, поэтому все координаты графики относятся именно к этому экрану. Если вы хотите, чтобы вашу игру можно было запускать на различных моделях телефонов, то вы должны вычислять положения спрайтов и изображений.

Хотя метод start() очень важен, все же большую роль играет метод update(), который обеспечивает работу всех игр, рассматриваемых в книге. В игре Henway метод update() выполняет ряд очень важных задач, например, обработку пользовательского ввода, перемещение спрайта цыпленка и проверку, попал ли цыпленок под колеса автомобиля или в сохранности преодолел шоссе. Перед выполнением любой задачи, осуществляется проверка, запущена ли игра:

if (gameOver) {

int keyState = getKeyStates();

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

// запустить новую игру

chickenSprite.setPosition(2, 77); //Чтобы начать игру заново, необходимо установить спрайт цыпленка в исходное положение и установить значения ряда переменных

gameOver = false;

score = 0;

numLives = 3;

}

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

return;

}

Этот код проверяет, закончена ли игра – в единственном месте, где имеет смысл перезапустить игру. Клавиша стрельбы используется для перезапуска игры. В разных телефонах эта клавиша называется по-разному, но в эмуляторе J2ME это клавиша Select, связанная с клавишей Enter персонального компьютера. Код перезапуска игры в методе update() восстанавливает исходное положение спрайта цыпленка, обнуляет переменную gameOver, счет, а также восстанавливает исходное количество жизней. Это все, что требуется для перезапуска игры. Метод update() также обрабатывает пользовательский ввод и перемещает цыпленка по экрану. Ниже приведен код, перемещающий спрайт цыпленка в соответствии с нажатыми клавишами:

if (++inputDelay > 2) {

int keyState = getKeyStates();

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

chickenSprite.move(-6, 0); //Кроме того, что спрайт цыпленка перемещается, с каждым нажатием клавиши изменяется номер фрейма анимации

chickenSprite.nextFrame();

}

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

chickenSprite.move(6, 0);

chickenSprite.nextFrame();

}

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

chickenSprite.move(0, -6);

chickenSprite.nextFrame();

}

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

chickenSprite.move(0, 6);

chickenSprite.nextFrame();

}

checkBounds(chickenSprite, false); //Значение false, передаваемое вторым параметром, говорит о том, что цыпленок не должен выйти за границы экрана

// обнулить задержку ввода

inputDelay = 0;

}

Этот код объясняет, как работает переменная inputDelay: она увеличивается на каждой итерации игрового цикла и обрабатывает нажатия клавиш на каждой третьей итерации. Иначе говоря, реакция на нажатия клавиш снижена в три раза, это делает игру Henway более интересной и захватывающей, особенно на сложных уровнях. После того как детектировано нажатие клавиши, спрайт цыпленка перемещается на определенное расстояние и вызовом метода nextFrame() изменяется фрейм. Поскольку изображение цыпленка состоит из двух фреймов, то они сменяют друг друга при движении цыпленка. В результате такой простой анимации создается иллюзия того, что цыпленок идет.

...

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

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

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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