Майкл Моррисон - Создание игр для мобильных телефонов
- Название:Создание игр для мобильных телефонов
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Майкл Моррисон - Создание игр для мобильных телефонов краткое содержание
Книга «Создание игр для мобильных телефонов» – это практическое руководство, которое поможет разработать и реализовать игру для мобильного телефона.
Книга написана простым языком, не содержит сложной и скучной теории программирования и шаг за шагом знакомит с методикой создания технологии «plug-and-play» применительно к созданию огромного количества игр.
В издание включены подробные описания и примеры кодов для четырех игр, а также информация, необходимая для реализации вашей собственной задумки.
Если вы любите играть в игры и занимаетесь программированием, то эта книга – для вас!
Перевод: К. Михалкин
Создание игр для мобильных телефонов - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
DatagramConnection dc = (DatagramConnection)Connector.open(«datagram://:5555»);
Совет Разработчику
Число 5555 в примере, – это сетевой порт, используемый датаграммным подключением. Номер порта может быть любым, но больше 1024. Очень важно, чтобы клиент и сервер мидлета соединялись через один и тот же порт.
В следующих разделах мы более глубоко рассмотрим датаграммные соединения, как получать и отправлять данные.
Создание пакетов датаграммы
Чтобы использовать датаграммы для коммуникации через телефонную сеть, необходимо разделить данные на отдельные части – пакеты. Когда мобильные игры передают информацию через датаграммное соединение, они на самом деле отправляют и принимают пакеты. Датаграммные пакеты разработаны так, что они хранят массив байтов, поэтому любые данные в вашем пакете должны быть преобразованы в массив байтов. Когда вы создаете объект типа Datagram, необходимо определить число байтов, помещаемых в пакет. Ниже приведен пример создания объекта Datagram, способного хранить 64 байта информации:
Datagram dg = dc.newDatagram(64);
В этом коде объект Datagram создается вызовом метода newDatagram объекта соединения. Параметр метода newDatagram() – это размер датаграммы в байтах. Такой метод хорошо подходит для приема информации в играх. Другой подход к созданию датаграммы – это создать и заполнить датаграмму в одной строке. Этот метод хорошо подходит для отправления информации, когда у вас есть данные для отправки. Многие игры для коммуникации используют сообщения, при этом каждая строка должна быть преобразована в байтовый массив перед тем, как будет сохранена в датаграмме:
String message = «GameOver» byte[] bytes = message.getBytes();
В этом коде строка «GameOver» преобразуется в массив байтов, который сохраняется в переменной bytes. Для создания датаграммы используется другой вариант метода newDatagram():
Datagram dg = dc.newDatagram(bytes, bytes.length);
В этом коде массив байтов игровых данных передается первым параметром в метод newDatagram(), а его длина – вторым параметром. В ряде случаев (пакет пересылается от сервера к клиенту) необходимо использовать совершенно другой вариант метода newDatagram():
Datagram dg = dc.newDatagram(bytes, bytes.length, address);
В этом методе есть третий параметр, который содержит адрес цели – получателя датаграммного пакета. Адрес необходим только в случае, если сервер пересылает данные клиенту, при этом адрес можно получить из датаграммы клиента, для чего используется функция getAddress().
В копилку Игрока
В этой главе вы познакомитесь с еще более сложным методом создания датаграмм для сервера и клиента, когда будете работать над мидлетом Lighthouse.
Отправка пакетов датаграммы
Интерфейс DatagramConnection предоставляет единственный метод для отправки пакетов датаграммы. Я говорю о методе send(), который очень просто использовать. На самом деле все, что необходимо для отправки пакета, – это лишь одна строка кода:
dc.send(dg);
Посмотрим, как используется этот код в программе. Для этого рассмотрим следующий листинг, в котором сначала создается объект Datagram, а затем пересылается пакет через датаграммное соединение:
// Преобразовать строку в массив байтов
byte[] bytes = message.getBytes();
// Отправить сообщение
Datagram dg = null;
dg = dc.newDatagram(bytes, bytes.length);
dc.send(dg);Вы уже видели все строки этого кода по отдельности, но здесь они объединены в один фрагмент. Это действительно все, что необходимо, чтобы сформировать пакет игровых данных и отправить через датаграммное соединение с сетью.
Получение пакетов датаграммы
Получение пакета датаграммы похоже на отправление пакета, оно выполняется методом интерфейса DatagramConnection. Этот метод называется receive(), в качестве параметра он принимает объект Datagram, точно так же, как send(). Ниже приведен пример использования метода receive() для получения датаграммы:dc.receive(dg);
Конечно, при этом пакет датаграммы должен быть определенного размера. Ниже приведен код, формирующий и принимающий пакеты датаграммы:
// Попытка получения пакета
Datagram dg = dc.newDatagram(64);
dc.recieve(dg);
// Убедиться, что датаграмма содержит информацию
if (dg.getLength() > 0) {
String data = new String(dg.getData(), 0, dg.getLength());
}Важно отметить, что в этом коде полученная датаграмма проверяется методом getLength(). Такая проверка важна, поскольку необходимо знать, есть ли данные в датаграмме. Если данные есть, то датаграмма конвертируется в строку и сохраняется в переменной data. Затем эти данные можно обработать специальным кодом.
Создание примера Lighthouse
За много лет до появления мобильных телефонов, радиопередатчиков и приемников мореплаватели использовали более примитивное средство коммуникации. Я говорю о маяках, которые обычно устанавливались на самых высоких частях берега, на их верхушке зажигался свет, направлявший корабли. Несмотря на то что сейчас маяки используют современные средства связи, свет остается источником визуальной коммуникации. Поскольку мобильные телефоны – это современная форма связи, я думаю, что пример с маяком может послужить хорошим примером для создания сетевого мидлета.
Одним из способов коммуникации маяков с экипажами корабля была азбука Морзе – очень удобный способ передачи слов и букв последовательностями «точек» и «тире». Точка – это короткий визуальный или звуковой сигнал, например, вспышка света или металлический звук. Тире по длительности приблизительно равно трем точкам, что соответствует более длительному звуку или вспышке света. Последовательность точек и тире задает отдельные слова. Ниже приведены коды азбуки Морзе.A – . – J – . – – – S – . . . 1 – . – – – -
B – – . . . K – – . – T – – 2 – . . – – -
C – . – . L – . – . – U – . . – 3 – . . . – -
D – – . . M – – – V – . . . – 4 – . . . . -
E – . N – – . W – . – – 5 – . . . . .
F – . O – – . X – – . . – 6 – – . . . .
G – – – . P – . – – . Y – . – . – 7 – – . . .
H – . . . . Q – – – . – Z – – – . . 8 – – – – . .
I – . . R – . – . 0 – – – – – – 9 – – – – – .Используя эти коды, вы можете составлять слова и предложения. После каждой буквы следует небольшая пауза, а в конце предложения – более продолжительная. Ниже приведен код слова «hello» в азбуке Морзе:
. . . . . . – . . . – . . – – -
В копилку Игрока
Популярное слово азбуки Морзе – это SOS, что, как большинство ошибочно полагает, означает «Спасите Наши Души» (от англ. Save Our Souls). На самом деле это вовсе не аббревиатура, а простое сочетание букв, но оно служит важным сигналом. Это слово кодируется не по правилам азбуки Морзе – без пауз: . . . – – – . . .
Интервал:
Закладка: