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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

Приоритет команды используется для определения доступности команды пользователю. Это необходимо из-за того, что большинство устройств имеет ограниченный набор клавиш для использования мидлетами. Следовательно, только самые важные команды могут быть связаны с экранными кнопками. Другие команды используются через меню, доступ к которому мидлету получить не так уж и просто. Чем важнее команда, тем меньше номер ее приоритета. Например, значение 1 соответствует команде с наивысшим приоритетом, а в примере Skeleton команде Exit присвоен приоритет 2, что соответствует высокой важности команды. Конечно, значения приоритетов относительны, и поскольку в рассматриваемом примере не используются другие команды, то численное значение приоритета в данном случае не существенно.

Команда Exit мидлета Skeleton обрабатывается методом commandAction():

public void commandAction(Command c, Displayable s) {

if (c.getCommandType() == Command.EXIT) {

destroyApp(true);

notifyDestroyed();

}

}

Методу commandAction() передаются два аргумента – команда и экран, на котором будет сгенерирована команда. В рассматриваемом примере интересна лишь команда. Объект Command сравнивается с константой Command.EXIT, таким образом осуществляется проверка, действительно ли выполняется команда Exit. Если да, то вызывается метод destroyApp() и мидлет разрушается. Аргумент true означает, что разрушение безусловно, то есть мидлет разрушается в любом случае, даже если возникла ошибка. Затем вызывается метод notifyDestriyed(), который сообщает менеджеру приложений о том, что мидлет перешел в состояние Destroyed. Мидлет Skeleton не работает с методами pauseApp() и destroyApp(), но вы должны реализовать их в любом случае:

public void pauseApp() {} public void destroyApp(boolean unconditional) {}

Хотя вы уже видели все фрагменты кода, полное содержимое файла SkeletonMIDlet.java представлено в листинге 3.1. Листинг 3.1. Код класса SkeletonMIDlet, расположенный в файле SkeletonMIDlet.java

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

public class SkeletonMIDlet extends MIDlet implements CommandListener {

private SCanvas canvas;

public void startApp() {

if (canvas == null) {

canvas = new SCanvas(Display.getDisplay(this));

Command exitCommand = new Command("Exit", Command.EXIT, 0);

canvas.addCommand(exitCommand);

canvas.setCommandListener(this);

}

// инициализация холста

canvas.start();

}

public void pauseApp() {} //В данном примере эти методы не используются вовсе, однако все равно

public void destroyApp(boolean unconditional) {} //необходимо предоставить пустые реализации, чтобы удовлетворить требованиям класса MIDLET

public void commandAction(Command c, Displayable s) {

if (c.getCommandType() == Command.EXIT) {

destroyApp(true); //В конце следует вызвать метод destroyApp(), хотя на самом деле

notifyDestroyed(); //работу мидлета завершает метод notifyDestroyed()

}

}

}

Оставшаяся часть кода мидлета Skeleton связана с классом SCanvas и представлена в листинге 3.2. Листинг 3.2. Класс SCanvas служит как настраиваемый холст мидлета Skeleton

import javax.microedition.lcdui.*;

public class SCanvas extends Canvas {

private Display display;

public SCanvas(Display d) {

super();

display = d;

}

void start() {

display.setCurrent(this); //Это весьма важный код, так как он устанавливает текущий холст для мидлета

repaint();

}

public void paint(Graphics g) {

// очистить холст

g.setColor(0, 0, 0); // черный //Прежде чем начинать

g.fillRect(0, 0, getWidth(), getHeight()); //рисование на холсте,

g.setColor(255, 255, 255); // белый //необходимо очистить фон

// вывести размер экрана

int y = 0;

String screenSize = "Screen size: " + Integer.toString(getWidth()) + " x " + Integer.toString(getHeight());

g.drawString(screenSize, 0, y, Graphics.TOP | Graphics.LEFT);

// вывести число цветов дисплея

y += Font.getDefaultFont().getHeight();

String numColors = "# of colors: " + Integer.toString(display.numColors());

g.drawString(numColors, 0, y, Graphics.TOP | Graphics.LEFT);

// вывести число доступных альфа-уровней

y += Font.getDefaultFont().getHeight();

String numAlphas = "# of alphas: " + Integer.toString(display.numAlphaLevels());

g.drawString(numAlphas, 0, y, Graphics.TOP | Graphics.LEFT);

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

Runtime runtime = Runtime.getRuntime();

y += Font.getDefaultFont().getHeight();

String totalMem = "Total memory: " + Long.toString(runtime.totalMemory() / 1024) + "KB";

g.drawString(totalMem, 0, y, Graphics.TOP | Graphics.LEFT);

y += Font.getDefaultFont().getHeight();

String freeMem = "Free memory: " + Long.toString(runtime.freeMemory() / 1024) + "KB";

g.drawString(freeMem, 0, y, Graphics.TOP | Graphics.LEFT);

}

}

Класс SCanvas – производный от класса Canvas, его конструктор принимает единственный параметр Display. Конструктор просто определяет переменную display, после чего дисплей мидлета доступен в любом месте кода холста. Метод start() вызывает метод setCurrent() объекта Display и устанавливает холст в качестве экрана. Мидлет может иметь несколько экранов, в этом случае для переключения между ними вы можете использовать метод setCurrent(). Метод start() вызывает метод repaint(), выполняющий перерисовку холста.

...

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

Несмотря на то что класс SCanvas мидлета Skeleton произведен от класса Canvas, в большинстве примеров, рассматриваемых в книге, этот класс является производным от GameCanvas, который предоставляет специальные возможности, как дважды буферизованная графика и эффективная обработка ввода с клавиатуры. Эти возможности не нужны для создания приложения Skeleton.

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

Интервал:

Закладка:

Сделать

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

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


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

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

x