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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

if (!connected)

sendMessage("Client");

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

Datagram dg = dc.newDatagram(32);

dc.receive(dg);

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

if (dg.getLength() > 0) {

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

if (data.equals("Server")) { //Ответить на сообщение сервера о соединении

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

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

connected = true;

}

else {

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

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

}

}

}

}

catch (ConnectionNotFoundException cnfe) {

System.err.println("The network server is unavailable.");

}

catch (IOException ioe) {

}

}

Метод run() класса клиента очень похож на аналогичный метод класса сервера за исключением того, что в классе клиента отсутствует переменная адреса при отправлении датаграммы. Кроме того, URL немного отличается от того, который использовался в классе сервера. И снова важно отметить, что номер порта (5555) должен быть одинаковым для клиента и сервера.

Класс LHClient также реализует метод sendMessage(), который также очень похож на аналогичный метод сервера. В листинге 14.4 приведен код метода sendMessage() клиента.

Листинг 14.4. Метод sendMessage() класса LHClient отправляет строковое сообщение серверу как пакет датаграммы

public void sendMessage(String message) {

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

try {

// преобразовать строку в массив байтов

byte[] bytes = message.getBytes();

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

Datagram dg = null; //Упаковка данных в датаграмму и отправка клиенту

dg = dc.newDatagram(bytes, bytes.length);

dc.send(dg);

}

catch (Exception e) {

}

}

Единственное отличие методов sendMessage() сервера и клиента – это то, что версия класса клиента не использует адреса при отправлении пакета серверу. Это незначительное, но очень важное отличие. Холст мидлета Lighthouse Когда классы сервера и клиента созданы, перейдем к созданию холста класса Lighthouse. Класс называется LHCanvas, он выводит на экран информацию о ходе подключения, а также отображает нужную картинку с маяком в соответствии с получаемой информацией.

private Display display;

private boolean sleeping;

private long frameDelay;

private Image[] background = new Image[2]; //Эта переменная говорит о том, является данное приложение образом сервера или клиента

private LHClient client;

private LHServer server;

private boolean isServer;

private String status = "";

private int mode; // 0 = none, 1 = dot, 2 = dash

private int morseTimer;

Переменная background содержит два изображения маяка: с включенным и погашенным огнем. Переменные server и client – это объекты сервера и клиента соответственно, они отвечают за работу мидлета с сетью. Переменная isServer очень важна, она определяет сетевой режим работы мидлета. Эта переменная определяет, как работает мидлет – как клиент или как сервер.

Текст статуса хранится в переменной status. временная mode используется для контроля вывода изображений маяка, а также интервалов времени. Помните, что точка в азбуке Морзе по длительности в три раза меньше тире, поэтому в мидлете Lighthouse используется таймер вывода изображения маяка, который задерживает изображение с включенным огнем в соответствии с отображаемым сигналом. За задержку отвечают переменные mode и morseTimer.

Переменные холста широко используются в методе start(), код которого приведен в листинге 14.5.

Листинг 14.5. Метод start() класса LHCanvas запускает сервис Клиент-Сервер

public void start() {

// установить экран как холст

display.setCurrent(this);

// инициализация фонового изображения

try {

background[0] = Image.createImage("/LighthouseOff.png");

background[1] = Image.createImage("/LighthouseOn.png");

}

catch (IOException e) {

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

}

// инициализация режима и таймера

mode = 0;

morseTimer = 0;

// запуск сетевого сервиса

if (isServer) { //Начиная с этой точки, мидлет работает в режиме сервера или клиента

server = new LHServer(this);

server.start();

}

else {

client = new LHClient(this);

client.start();

}

// начало потока анимации

sleeping = false;

Thread t = new Thread(this);

t.start();

}

После того как фоновые изображения инициализированы, метод start() инициализирует таймер и режим. Переменная mode инициализируется 0, что соответствует погашенному огню маяка (нет сообщения), в то время как переменная morseTimer обнуляется, несмотря на то что она не используется в отсутствие сообщения.

Наиболее важная часть кода метода start() реализует режим сервера или клиента. В зависимости от значения переменной isServer создается экземпляр класса LHServer или LHClient. После этого создается сетевой объект, вызывается метод старт, запускающий поток соединения.

Метод start() инициализирует мидлет Lighthouse, а метод update() обрабатывает пользовательский ввод и позволяет вам отправлять сообщения, закодированные азбукой Морзе. В листинге 14.6 приведен код метода update().

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

Интервал:

Закладка:

Сделать

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

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


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

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

x