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

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

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

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

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

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

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

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

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

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

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

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

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать

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

Написание игрового кода

Игра Space Out 2 содержит список из 5 рекордов, которые помещаются в хранилище записей. Хотя хранилище используется для постоянного хранения информации о рекордах, в игре они являются целыми числами. Ниже приведено объявление переменных игры Space Out 2, хранящих игровую заставку и массив рекордов:

private Image splash; private int[] hiScores = new int[5];

...

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

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

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

readHiScores();

Метод readHiScores() отвечает за открытие хранилища записей и последовательного чтения данных в целочисленный массив hiScores. В листинге 19.1 приведен код метода readHiScores(): Листинг 19.1. Метод readHiScores() считывает список рекордов из хранилища записей

private void readHiScores()

{

// открыть хранилище записей

RecordStore rs = null;

try {

rs = RecordStore.openRecordStore("HiScores", false); //Хранилище записей называется «HiScores»

}

catch (Exception e) {

}

if (rs != null) {

// считать список рекордов

try {

int len;

byte[] recordData = new byte[8];

for (int i = 1; i <= rs.getNumRecords(); i++) { //Пройти по всем записям хранилища

// при необходимости изменить размер выделенной памяти

if (rs.getRecordSize(i) > recordData.length)

recordData = new byte[rs.getRecordSize(i)];

// считать рекорд, преобразовать в число и записать в массив

len = rs.getRecord(i, recordData, 0);

hiScores[i – 1] = (Integer.parseInt(new String(recordData, 0, len))); //Преобразовать массив байтов в целое число и сохранить в массив рекордов

}

}

catch (Exception e) {

System.err.println("Failed reading hi scores!");

}

// закрыть хранилище данных

try {

rs.closeRecordStore();

}

catch (Exception e) {

System.err.println("Failed closing hi score record store!");

}

}

else {

// The record store doesn\'t exist, so initialize the scores to 0

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

hiScores[i] = 0;

}

}

Метод readHiScores() начинается попыткой открытия хранилища записей, которое называется «HiScores». Второй параметр метода (false) означает, что новое хранилище не нужно создавать, если хранилище с указанным именем не найдено. Если хранилище открыто успешно, то метод readHiScores() продолжает работу с хранилищем и считывает последовательно данные в массив целых чисел. После того как список рекордов считан, хранилище записей закрывается. Обратите внимание, что если хранилища с указанным именем не существует, то массив hiScores инициализируется 0. Этот вариант работает только при первом запуске игры.

Другое, но очень важное изменение метода start() игры Space Out 2 касается работы метода в случае ранее наступившего окончания игры. В исходной версии игры Space Out игра начинается сразу при запуске мидлета.

В игре Space Out 2 заставка и список рекордов отображаются при первом запуске игры. Иначе говоря, игра Space Out 2 начинается в режиме «окончания игры». Поэтому в методе start() больше не вызывается метод newGame(), а переменной gameOver присваивается значение true:

gameOver = true;

Подобно тому, как список рекордов считывается в методе start(), он записывается в методе stop():

writeHiScores();

Метод writeHiScores() записывает целочисленный массив в хранилище записей. В листинге 19.2 приведен код этого метода: Листинг 19.2. Метод writeHiScores() записывает целочисленный массив HiScores в хранилище данных

private void writeHiScores()

{

// удалить предыдущее хранилище записей

try {

RecordStore.deleteRecordStore("HiScores"); //Сначала удаляется хранилище записей

}

catch (Exception e) {

}

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

RecordStore rs = null;

try {

rs = RecordStore.openRecordStore("HiScores", true); //Значение true говорит о том, что если хранилище записей с указанным именем не будет найдено, то будет создано новое хранилище

}

catch (Exception e) {

System.err.println("Failed creating hi score record store!");

}

// записать рекорды

for (int i = 0; i < 5; i++) {

// подготовить данные для записи

byte[] recordData = Integer.toString(hiScores[i]).getBytes(); //Преобразовать целое число в массив байтов, чтобы записать его в хранилище

try {

// записать данные в хранилище

rs.addRecord(recordData, 0, recordData.length);

}

catch (Exception e) {

System.err.println("Failed writing hi scores!");

}

}

// закрыть хранилище

try {

rs.closeRecordStore();

}

catch (Exception e) {

System.err.println("Failed closing hi score record store!");

}

}

Метод writeHiScores() использует уникальную методику записи рекордов. Вместо того чтобы заменить отдельную запись в хранилище, заменяется все хранилище целиком. Хотя такой подход может показаться грубым, он значительно упрощает код игры. Это и объясняет, почему в начале метода writeHiScores() удаляется хранилище записей.

После того как хранилище записей удалено, метод writeHiScores() создает новое хранилище, для чего вторым параметром при вызове метода openRecordStore() передается true. Затем выполняется цикл по всем элементам массива hiScores, каждый из элементов записывается в хранилище. Когда все рекорды записаны, хранилище закрывается, для чего вызывается метод closeRecordStore().

Вы создали код, считывающий список рекордов в начале игры, и записывающий список в хранилище по окончании игры. Но я не упомянул о том, как обновляется список рекордов. При окончании игры метод update() вызывает метод updateHiScores(), обновляющий список рекордов:

if (carsLeft– == 0) {

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

try {

musicPlayer.stop();

}

catch (MediaException me) {

}

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

try {

gameoverPlayer.start();

}

catch (MediaException me) {

}

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

playerSprite.setVisible(false);

// обновить список рекордов

updateHiScores(); //Вызов метода updateHiScores() – это все, что необходимо для обновления списка рекордов

gameOver = true;

return;

}

Метод updateHiScores() – это вспомогательный метод, который проверяет, попадает ли результат игрока в список рекордов. Если да, то он добавляет этот результат, удаляя наименьший рекорд. В листинге 19.3 приведен код этого метода. Листинг 19.3. Метод updateHiScores() обновляет список рекордов

private void updateHiScores() {

// проверить, попадает ли результат игрока в список рекордов

int i;

for (i = 0; i < 5; i++)

if (score > hiScores[i]) //Если счет больше, чем текущий рекорд, то поместить результат игры в список рекордов

break;

// поместить результат в список рекордов.

if (i < 5) {

for (int j = 4; j > i; j–) { //Цикл смещает меньшие результаты в конец списка рекордов

hiScores[j] = hiScores[j – 1];

}

hiScores[i] = score;

}

}

Метод updateHiScores() сначала проверяет, попадает ли результат, набранный игроком, в список рекордов. Если да, то он добавляется в список рекордов, при этом наименьший результат удаляется из списка. В списке рекордов содержится не более 5 записей, поэтому прежние рекорды уступают место новым. Помните, что список рекордов временно хранится в памяти телефона, пока игра существует, данные не будут помещены в хранилище, если не будет вызван метод stop().

Читать дальше
Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать


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

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




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


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


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

Напишите свой комментарий
Большинство книг на сайте опубликовано легально на правах партнёрской программы ЛитРес. Если Ваша книга была опубликована с нарушениями авторских прав, пожалуйста, направьте Вашу жалобу на PGEgaHJlZj0ibWFpbHRvOmFidXNlQGxpYmtpbmcucnUiIHJlbD0ibm9mb2xsb3ciPmFidXNlQGxpYmtpbmcucnU8L2E+ или заполните форму обратной связи.
img img img img img