Майкл Моррісон

Мал. 2.8. Гра Worm – гарний приклад простого ігрового мідлету

Приклад гри Worm – це варіація відомої гри Snake, про яку ви дізналися у попередньому розділі. Пограйте трохи в гру та поекспериментуйте з емулятором. Коли закінчите та закриєте вікно емулятора, спробуйте іншу конфігурацію пристрою, яку можна вибрати з меню інструмента KToolbar. На рис. 2.9 показана гра PushPuzzle, емульована на пристрої з конфігурацією Qwerty.

Як видно, емулятор дуже гнучкий при імітації мобільних пристроїв, його можна ефективно використовувати як базис для розробки мідлетів ігор.

Емулятор J2ME та реальні пристрої

Таблиця 2.1. Мобільні пристрої, які підтримуються J2ME Wireless Kit

Розділ 3 Створення мобільної гри Skeleton

Знайомство з J2ME API

Мал. 3.1. Щоб виконувати більшість функцій, мідлет повинен робити виклики CLDC API та MIDP API

Пам'ятайте, що хоча CLDC API та MIDP API були ретельно підібрані з урахуванням необхідності компромісу між продуктивністю та необхідним розміром пам'яті та обмеженнями мобільних пристроїв, їх у певних випадках недостатньо. Це означає, що в ряді випадків вам доведеться ретельніше опрацьовувати мідлет гри, оскільки у вашому розпорядженні немає широкого набору API, такого як у випадку звичайного програмування.

У скарбничку ГравцяЯкщо вам доводилося працювати з J2ME раніше, то вам, ймовірно, буде цікаво дізнатися, що пакет javax.microedition.ldui.game з'явився лише в MIDP 2.0. Ось чому MIDP 2.0 є значним просуванням вперед і зміцненням позицій J2ME як технології мобільних ігор.

Поняття про мідлети

Усередині мідлета

Життєвий цикл мідлета
Команди мідлета
Дисплей, екрани та полотна

У скарбничку ГравцяЯкщо ви створюєте гру з можливістю зміни налаштувань, або вам необхідно отримати інформацію від користувача, використовуйте клас javax.microedition.lcdui.Screen. Екран (screen) – це GUI-компонент мідлета, що настроюється, який служить базовим класом для інших важливих компонентів. Значимість екранів у тому, що вони відображають всю екранну інформацію. Декілька екранів не можуть відображатися одночасно. Ви можете уявити кілька екранів як карти, які берете одну за одною. Більшість мідлет використовують класи javax.miroedition.lcdui.Form, javax.miroedition.lcdui.TextBox, або javax.miroedition.lcdui.List, оскільки вони надають широкі можливості. Екрани можна використовувати разом з об'єктами класу Canvas, в результаті чого для ігрового мідлета можна створити повноцінний GUI. Не можна відображати екран і полотно одночасно, однак ви можете перемикатися між відображеннями.

Основи розробки мідлетів

Створення прикладу гри Skeleton

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

У цьому розділі ви створите код мідлета Skeleton. Перша частина створюваного коду – це імпорт кількох важливих пакетів J2ME. Ви можете не імпортувати пакети, а посилатися на них через повне ім'я (наприклад, javax.microedition.midlet.MIDlet), але це дуже незручно і робить код, що погано читається. Тому перші два рядки коду вашого мідлета імпортують два головні пакети, необхідні для розробки:

import javax.microedition.midlet.*; import javax.microedition.lcdui.*;

Рада РозробникуБагато Java-програмістів не схвалюють імпортування цілих пакетів з використанням групового символу * (зірочка), оскільки при цьомунемає інформації про особливі класи, які ви імпортуєте. Однак це дуже простий і швидкий спосіб імпортувати всі класи пакета, а для цілей цієї книги я використовуватиму найпростіший підхід, щоб зробити код якомога зрозумілішим. Не бійтеся імпортувати класи під час написання власного коду, це допоможе вам зробити код яснішим.