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

Здесь есть возможность читать онлайн «Майкл Моррисон - Создание игр для мобильных телефонов» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Создание игр для мобильных телефонов: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Создание игр для мобильных телефонов»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Книга «Создание игр для мобильных телефонов» – это практическое руководство, которое поможет разработать и реализовать игру для мобильного телефона.
Книга написана простым языком, не содержит сложной и скучной теории программирования и шаг за шагом знакомит с методикой создания технологии «plug-and-play» применительно к созданию огромного количества игр.
В издание включены подробные описания и примеры кодов для четырех игр, а также информация, необходимая для реализации вашей собственной задумки.
Если вы любите играть в игры и занимаетесь программированием, то эта книга – для вас! Перевод: К. Михалкин

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

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Создание игр для мобильных телефонов», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

private Display display;

private boolean sleeping;

private long frameDelay;

private Random rand;

private Sprite ufoSprite;

private int ufoXSpeed, ufoYSpeed;

Переменная display уже знакома вам по предыдущим примерам, она используется для работы с дисплеем. Переменная sleeping определяет, запущен ли игровой цикл. Вы можете приостановить выполнение анимации, присвоив этой переменной значение true. Переменная frameDelay тесно связана с игровым циклом, поскольку она контролирует частоту его выполнения. Если быть более точным, то эта переменная содержит число миллисекунд между итерациями цикла. Вы можете с легкостью пересчитать это число в количество фреймов, для чего нужно на него разделить 1. Например, если величина framedelay равна 40 мс (или 0.04 с), то частота кадров будет равна 25. Аналогично, вы можете преобразовать частоту кадров во временной интервал между ними, для чего нужно поделить 1 на частоту и умножить на 1000. Например:

1/30 кадр/с = 0.333333 с = 33 мс

Член-переменная класса rand – это экземпляр стандартного генератора случайных чисел MIDP, он используется для создания произвольного движения объекта по экрану. Спрайт НЛО хранится в переменной ufoSprite, которая является объектом класса Sprite. Скорость спрайта хранится отдельно от самого спрайта – в переменной ufoSpeed.

...

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

С практической точки зрения, обычно лучше создавать спрайты как отдельные классы, производные от класса Sprite. Однако поскольку спрайт НЛО достаточно прост, нет необходимости создавать для него отдельный класс. Большинство спрайтов, с которыми вы столкнетесь в книге, будут созданы как отдельные классы, производные от Sprite.

Чуть раньше я упомянул, что переменная frameDelay определяет частоту кадров анимации мидлета UFO. Эта переменная инициализируется в конструкторе мидлета:

frameDelay = 33;

Возвращаясь к указанному ранее уравнению, вы можете посчитать, что этот интервал времени соответствует частоте 30 кадров/с. Если вы вспомните, о чем говорилось в начале главы, то исходя из того, что современные мобильные телефоны поддерживают такую частоту, она обеспечивает плавную анимацию. Это тот случай, когда тестирование на реальном устройстве важно. Большая часть инициализирующего кода мидлета UFO расположена в методе start(). Ниже приведена часть кода, инициализирующего спрайт:

ufoXSpeed = ufoYSpeed = 3;

try {

ufoSprite = new Sprite(Image.createImage("/Saucer.png"));

ufoSprite.setPosition(0, 0);

}

catch (IOException e) {

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

}

Компоненты X и Y скорости спрайта равны 3, поэтому спрайт будет перемещаться на три пикселя вниз и вправо за одну итерацию. Отрицательные значения компонента скорости говорят о том, что спрайт перемещается вверх и влево. Чтобы создать объект класса Sprite, передайте созданное изображение конструктору этого класса. Начальное положение спрайта равно (0,0) – верхний левый угол экрана. Поток анимации устанавливается также в методе start():

sleeping = false;

Thread t = new Thread(this);

t.start();

Сначала переменной sleeping присваивается значение false, это означает, что выполнение цикла разрешено. Затем создается объект класса Thread, которому передается холст с помощью параметра this. Поток вызывает метод start(), который запускает и приостанавливает выполнение игрового цикла. Важно предусмотреть средства остановки игрового цикла, для чего предусмотрен метод stop():

public void stop() {

// остановить анимацию

sleeping = true;

}

Как вы можете видеть, приостановить выполнение цикла очень легко, для этого достаточно присвоить переменной sleeping значение true. Игровой цикл расположен в методе run():

while (!sleeping) {

update();

draw(g);

try {

Thread.sleep(frameDelay);

}

catch (InterruptedException ie) {}

}

Игровой цикл – это цикл while, который выполняется до тех пор, пока значение переменной sleeping ложно. Внутри цикла вызывается метод update(), который обновляет анимацию, после чего вызывается метод draw(), обновляющий изображение. Статический метод sleep() класса Thread используется, чтобы установить задержку потока анимации, которая определяется переменной frameDelay. Эта часть кода управляет анимацией мидлета. Метод update() вызывается в цикле один раз, а следовательно, отвечает за обновление каждого фрейма анимации. Иначе говоря, метод update() вызывается 30 раз в секунду, поскольку частота смены кадров в мидлете UFO равна 30 кадров/с. В данном случае метод update() отвечает за случайное изменение скорости летающего объекта, а следовательно, и за изменение его положения. Приведенный ниже код изменяет скорость объекта:

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

ufoXSpeed = Math.min(Math.max(ufoXSpeed + rand.nextInt() % 2, -8), 8);

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

Интервал:

Закладка:

Сделать

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

Представляем Вашему вниманию похожие книги на «Создание игр для мобильных телефонов» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


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

Обсуждение, отзывы о книге «Создание игр для мобильных телефонов» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x