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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать
Листинг 8.2. Метод update() класса UFOCanvas, который воспроизводит тоны мидлета UFO 3

private void update() {

// случайное воспроизведение звуков

if (rand.nextInt() % 500 == 0)

playTune();

// обработка пользовательского ввода для управления НЛО

byte G4 = (byte)(ToneControl.C4 + 7); //Тон G4 определен относительно тона C(C4)

int keyState = getKeyStates();

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

// воспроизвести звук, означающий перемещение

try {

Manager.playTone(G4, 100, 50); //Воспроизведение тона G4 на громкости 50% в течение 1/10 секунды в ответ на нажатие клавиши

}

catch (Exception e) {

}

ufoXSpeed–;

}

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

// воспроизвести звук, означающий перемещение

try {

Manager.playTone(G4, 100, 50);

}

catch (Exception e) {

}

ufoXSpeed++;

}

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

// воспроизвести звук, означающий перемещение

try {

Manager.playTone(G4, 100, 50);

}

catch (Exception e) {

}

ufoYSpeed–;

}

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

// воспроизвести звук, означающий перемещение

try {

Manager.playTone(G4, 100, 50);

}

catch (Exception e) {

}

ufoYSpeed++;

}

ufoXSpeed = Math.min(Math.max(ufoXSpeed, -8), 8);

ufoYSpeed = Math.min(Math.max(ufoYSpeed, -8), 8);

// переместить спрайт НЛО

ufoSprite.move(ufoXSpeed, ufoYSpeed);

checkBounds(ufoSprite);

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

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

// переместить спрайт астероида

roidSprite[i].move(i + 1, 1 – i);

checkBounds(roidSprite[i]);

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

if (i == 1)

roidSprite[i].prevFrame();

else

roidSprite[i].nextFrame();

// проверить столкновение между НЛО и астероидом

if (ufoSprite.collidesWith(roidSprite[i], true)) {

// воспроизвести звук столкновения

try {

Manager.playTone(ToneControl.C4 – 12, 500, 100); //Воспроизвести низкий звук в течение половины секунды на полной громкости при столкновении

}

catch (Exception e) {

}

// восстановить начальное положение НЛО и его скорость

ufoSprite.setPosition((getWidth() – ufoSprite.getWidth()) / 2,

(getHeight() – ufoSprite.getHeight()) / 2);

ufoXSpeed = ufoYSpeed = 0;

for (int j = 0; j < 3; j++)

roidSprite[j].setPosition(0, 0);

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

break;

}

}

}

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

Метод initTune() отвечает за инициализацию тоновой последовательности в мидлете UFO 3 (листинг 8.3).

Листинг 8.3. Метод initTune() в классе UFOCanvas инициализирует тоновую последовательность

private void initTune() {

byte tempo = 30; // 120bpm //Установить темп и длину нот

byte d4 = 16; // 1/4 ноты

byte d2 = 32; // 1/2 ноты

byte C4 = ToneControl.C4; //Определить последовательность нот на основании С4, а также тишину

byte A6 = (byte)(C4 + 21);

byte B6 = (byte)(C4 + 23);

byte G5 = (byte)(C4 + 19);

byte G4 = (byte)(C4 + 7);

byte D5 = (byte)(C4 + 14);

byte rest = ToneControl.SILENCE;

byte[] encountersSequence = {

ToneControl.VERSION, 1,

ToneControl.TEMPO, tempo,

ToneControl.BLOCK_START, 0,

A6,d4, B6,d4, G5,d4, G4,d4, D5,d2, rest,d2, //Мелодия из фильма «Близкие контакты»

ToneControl.BLOCK_END, 0,

ToneControl.PLAY_BLOCK, 0,

ToneControl.PLAY_BLOCK, 0,

};

try {

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

tonePlayer = Manager.createPlayer(Manager.TONE_DEVICE_LOCATOR);

tonePlayer.realize();

// создать тоновый проигрыватель и установить тоновую последовательность

ToneControl toneControl = (ToneControl)tonePlayer.getControl("ToneControl");

toneControl.setSequence(encountersSequence);

}

catch (IOException ioe) {

}

catch (MediaException me) {

}

}

Этот метод начинается с объявления ряда важных переменных, которые будут использоваться для описания тоновой последовательности. Затем аккуратно задается байтовый массив тоновой последовательности. Целесообразно сказать, что эта последовательность – мелодия из фильма «Близкие контакты третьего рода» («Close Encounters of the Third Kind»), в котором инопланетяне для контакта с людьми использовали эту мелодию. Пять нот повторяются дважды в байтовом массиве encounterSequence. На рис. 8.3 показана тема из «контактов» в виде тоновой последовательности encounterSequence.

Рис. 8.3. Простая мелодия из кинофильма «Близкие контакты третьего рода» закодирована в виде тоновой последовательности

Когда тоновая последовательность задана, создается и реализуется тоновый проигрыватель, организуется доступ к его управлению и передается последовательность. При выходе из этого метода проигрыватель уже содержит нужную последовательность, готовую к воспроизведению.

Метод playTune() воспроизводит тоновую последовательность, а метод cleanupTune() закрывает проигрыватель. В листинге 8.4 показаны эти два метода.

Листинг 8.4. Методы playTune() и cleanupTune() класса UFOCanvas соответственно воспроизводят и очищают тоновую последовательность

private void playTune() {

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

Интервал:

Закладка:

Сделать

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

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


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

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

x