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

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

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

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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

Но вернемся к примеру мидлета Lighthouse. Идея этого приложения состоит в том, чтобы имитировать маяк на мобильном телефоне и использовать азбуку Морзе для коммуникации с другим телефоном с помощью вспышек маяка. Это работает так: на экране каждого телефона изображен маяк, вы смотрите на маяк на телефоне другого человека, а он смотрит на маяк на вашем телефоне. Используя клавиши направлений влево и вправо вы посылаете тире и точки через беспроводную сеть, в результате маяк на телефоне другого человека будет мигать, передавая точки и тире.

...

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

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

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

Разработка клиента и сервера

Мидлет Lighthouse использует все преимущества отношения «клиент – сервер» между двумя мобильными телефонами. Соединение между мидлетами – датаграммное, это означает, что обмен информацией будет производиться датаграммными пакетами. Поскольку при разработке мидлета Lighthouse используется концепция «клиент – сервер», необходимо знать, какой из телефонов инициирует соединение. Ниже перечислено, что происходит между телефоном-клиентом и телефоном-сервером в мидлете Lighthouse:

1. сервер начинает датаграммное соединение и ждет ответа клиента;

2. телефон-клиент открывает датаграммное соединение с телефоном-сервером;

3. когда соединение установлено, клиент и сервер обмениваются сообщениями;

4. клиент и сервер завершают соединение.

Интерес в разрабатываемом мидлете представляет то, что один из телефонов должен функционировать и как клиент, и как сервер в зависимости от контекста. Чтобы реализовать эту двойную функциональность, пользователь при запуске мидлета может определить, какую роль будет играть его телефон – клиента или сервера. После чего один телефон будет работать либо в режиме клиента, либо в режиме сервера. Зная, что для мидлета Lighthouse есть два режима функционирования, целесообразно разделить сетевой код мидлета на код клиента и код сервера.

...

В копилку Игрока

С точки зрения программирования сетевых игр пример Lighthouse является не настоящим примером приложения «клиент – сервер», а коммуникатором между двумя устройствами. В настоящих сетевых играх, основанных на концепции «клиент – сервер», есть отдельное серверное приложение, запущенное на сетевом сервере. Мидлеты, подключающиеся к серверу, – клиенты, а сервер управляет игрой. Мидлет Lighthouse является приложением «клиент – сервер» только лишь с той точки зрения, что одно устройство (сервер) ожидает подключения другого устройства (клиента).

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

Мидлет Lighthouse может работать в двух режимах – режиме клиента и режиме сервера. Режим определяется пользователем через интерфейс при запуске мидлета (вы это увидите чуть позже). Перед тем как вы перейдете к этому, важно разобрать код работы с сетью, который выполняет отправление и прием пакетов через беспроводное соединение.

Клиент и сервер мидлета Lighthouse

Код «клиент – сервер» в мидлете Lighthouse намного легче понять, если начать рассмотрение кода сервера. Все функции сервера содержатся в классе LHServer, который отвечает за ожидание датаграммного подключения клиента. Класс LHServer реализует интерфейс Runnable, что означает, что он запускается в отдельном потоке:

public class LHServer implements Runnable {

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

private LHCanvas canvas;

private DatagramConnection dc;

private String address;

private Boolean connected;

Холст хранится внутри класса LHServer в переменной canvas. Датаграммное соединение хранится в переменной dc – объекте класса DatagramConnection. Переменная address хранит адрес клиента, чтобы пакеты датаграммы могли быть направлены непосредственно получателю. И наконец, переменная connected отслеживает текущее состояние соединения с клиентом. Конструктор класса LHServer принимает единственный параметр – объект класса LHCanvas, конструктор выполняет ряд инициализаций:

public LHServer(LHCanvas c) {

canvas = c;

connected = false;

}

Метод start() также очень прост, он запускает поток:

public void start() {

Thread t = new Thread(this);

t.start();

}

Метод run() – это метод, в котором реализуются основные функции сервера (листинг 14.1). Листинг 14.1. Метод run() класса LHServer отвечает на сообщения, принятые от клиента

public void run() {

try {

// соединиться с клиентским устройством

canvas.setStatus("Waiting for peer client..."); //Первое статусное сообщение сервера говорит о том, что он ожидает клиента

dc = null;

while (dc == null)

dc = (DatagramConnection)Connector.open("datagram://:5555"); //Порты клиента и сервера должны быть одинаковыми

while (true) {

// попробовать принять пакет датаграммы

Datagram dg = dc.newDatagram(32); //Размер датаграммы (32 байта) должен быть достаточно большим, чтобы вместить наибольшее возможное сообщение, однако в игре Lighthouse сообщения не очень велики

dc.receive(dg);

address = dg.getAddress();

// проверить, что датаграмма содержит данные

if (dg.getLength() > 0) {

String data = new String(dg.getData(), 0, dg.getLength());

if (data.equals("Client")) { //В ответ на соединение клиента, изменяется значение переменной и отправляется ответ

// оповестить пользователя об удачном соединении

canvas.setStatus("Connected to peer client.");

connected = true;

// попробовать ответить на принятое сообщение

sendMessage("Server");

}

else {

// отправить данные

canvas.receiveMessage(data); //Сообщение должно содержать знаки азбуки Морзе, поэтому необходимо его передать холсту

}

}

}

}

catch (IOException ioe) {

System.err.println("The network port is already taken.");

}

catch (Exception e) {

}

}

Метод run() начинается с вызова метода setStatus() класса LHCanvas, который выводит в строку статуса холста «Waiting for peer client…» – режим ожидания клиента. Пользователь будет знать, что сервер ожидает подключения клиента. После того как статус выведен на холст, вызывается метод run(), создающий датаграммное соединение. Номер использования порта (5555) – произвольный, однако важно, что клиент и сервер используют один порт для соединения. Также важно указать, что создаваемое соединение – датаграммное.

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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