Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Программирование мобильных телефонов на Java 2 Micro Edition

Покупка
Артикул: 615901.01.99
Вы держите в руках второе и переработанное издание одной из популярных книг о программировании мобильных телефонов на Java 2 ME. Первое издание книги продавалось огромными тиражами по всему постсоветскому пространству. Автор книги создал уникальное издание, обучившее огромное количество начинающих программистов делать приложения для мобильных телефонов. Спустя три года после выхода первого издания, по многочисленным заявкам читателей была создана новая и переработанная версия книги. Книга содержит девять новых глав. Часть старого материала первого издания была переработана в соответствии с веяниями времени. Теперь читатель кроме программирования приложений для платформы Java 2 ME, изучит полный процесс создания мобильной игры. В течение книги будет освещен подход в формировании полноценного мобильного игрового движка, освоена работа с графикой, показаны примеры многослойных и анимированных игровых карт. Будут рассмотрены основы искусственного интеллекта, игровые столкновения, создание интерактивного меню игры, подсчет очков и жизненной энергии главного героя, сохранение данных в памяти, работа со звуком и многое другое. Итогом книги станет создание полноценной мобильной игры и знакомство с разработкой пользовательских программ на Java 2 ME. Компакт-диск содержит средства разработки мобильных приложений NetBeans и J2ME Wireless Toolkit, а также большой набор телефонных эмуляторов от компаний Nokia, BenQ-Siemens, Sony Ericsson, Motorola и Samsung.
Горнаков, С. Г. Программирование мобильных телефонов на Java 2 Micro Edition [Электронный ресурс] / С. Г. Горнаков. - 2-е изд. - Москва : ДМК Пресс, 2008. - 512 с.: ил. - ISBN 5-94074-409-5. - Текст : электронный. - URL: https://znanium.com/catalog/product/407112 (дата обращения: 29.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Горнаков С. Г.

ПРОГРАММИРОВАНИЕ

МОБИЛЬНЫХ ТЕЛЕФОНОВ
НА JAVA 2 MICRO EDITION

Москва

УДК 004.438
ББК 32.973.26018.2

Горнаков С. Г.

Г26
Программирование мобильных телефонов на Java 2 Micro Edition.  – М.:
ДМК Пресс. – 512 с.: ил.

ISBN  5940744095

Вы держите в руках второе и переработанное издание одной из популярных

книг о программировании мобильных телефонов на Java 2 ME. Первое издание
книги продавалось огромными тиражами по всему постсоветскому пространству.
Автор книги создал уникальное издание, обучившее огромное количество начинающих программистов делать приложения для мобильных телефонов. Спустя
три года после выхода первого издания, по многочисленным заявкам читателей
была создана новая и переработанная версия книги.

Книга содержит девять новых глав. Часть старого материала первого издания

была переработана в соответствии с веяниями времени. Теперь читатель кроме
программирования приложений для платформы Java 2 ME, изучит полный процесс создания мобильной игры. В течение книги будет освещен подход в формировании полноценного мобильного игрового движка, освоена работа с графикой,
показаны примеры многослойных и анимированных игровых карт. Будут рассмотрены основы искусственного интеллекта, игровые столкновения, создание интерактивного меню игры, подсчет очков и жизненной энергии главного героя, сохранение данных в памяти, работа со звуком и многое другое. Итогом книги
станет создание полноценной мобильной игры и знакомство с разработкой
пользовательских программ на Java 2 ME.

Компактдиск содержит средства разработки мобильных приложений NetBeans

и J2ME Wireless Toolkit, а также большой набор телефонных эмуляторов от компаний Nokia, BenQSiemens, Sony Ericsson, Motorola и Samsung.

УДК 004.438
ББК 32.973.26018.2

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой

бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав.

Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность

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

© Горнаков С. Г.

ISBN 5940744095
© Оформление, ДМК Пресс

Содержание

Предисловие....................................................................... 13
Что вы должны знать .................................................................. 14
Какое программное обеспечение используется......................... 14
О чем эта книга........................................................................... 14
Содержание компактдиска ....................................................... 14
Благодарности ........................................................................... 15
Об авторе ................................................................................... 15

Часть I. Введение в Java 2 Micro Edition ............................... 16

Глава 1. Основы языка программирования Java ............... 17
1.1. Введение в программирование ........................................... 17
1.2. Объектноориентированное программирование ................ 18
1.2.1. Классы ........................................................................ 19
1.2.2. Методы ....................................................................... 20
1.3. Синтаксис и семантика языка Java 2 МЕ .............................. 20
1.3.1. Комментарии.............................................................. 22
1.3.2. Типы данных Java ....................................................... 22
1.3.3. Операторы.................................................................. 24
1.3.4. Метод main ................................................................. 27
1.3.5. Закрытые и открытые члены классов .......................... 28
1.4. Конструктор ......................................................................... 28
1.5. Объекты классов.................................................................. 29
1.6. Условные операторы ........................................................... 33
1.7. Управляющий оператор ....................................................... 34
1.8. Циклы .................................................................................. 35
1.8.1. Оператор while............................................................ 36
1.8.2. Цикл do/while .............................................................. 37
1.8.3. Цикл for....................................................................... 38
1.9. Массивы .............................................................................. 39
1.10. Наследование .................................................................... 40
1.10.1. Конструктор суперкласса........................................ 43
1.11. Интерфейсы....................................................................... 45
1.12. Пакеты ............................................................................... 46

Содержание
Содержание
Содержание
Содержание
Содержание

Глава 2. Платформа Java 2 Micro Edition .............................. 48
2.1. Конфигурация CDC .............................................................. 50
2.2. Конфигурация CLDC ............................................................ 50
2.2.1. Свойства языка Java ................................................... 52
2.2.2. Виртуальная машина .................................................. 52
2.3. Профиль .............................................................................. 52
2.4. Профиль MIDP 2.0 и конфигурация CLDC 1.1 ....................... 54
2.4.1. Пакет java.lang ............................................................. 55
2.4.2. Пакет java.util .............................................................. 57
2.4.3. Пакет java.io ................................................................ 58
2.4.4. Пакет javax.microedition.io .......................................... 59
2.4.5. Пакет javax.microedition.lcdui ...................................... 60
2.4.6. Пакет javax.microedition.lcdui.game............................. 62
2.4.7. Пакет javax.microedition.media .................................... 62
2.4.8. Пакет javax.microedition.media.control ........................ 63
2.4.9. Пакет javax.microedition.midlet .................................... 64
2.4.10. Пакет javax.microedition.pki ....................................... 64
2.4.11. Пакет javax.microedition.rms...................................... 64

Глава 3. Инструментальные средства разработки
мобильных приложений ........................................................... 67
3.1. Установка Java 2 SDK SE ...................................................... 67
3.2. Инструментарий J2ME Wireless Toolkit ................................. 71
3.2.1. Установка J2ME Wireless Toolkit .................................. 72
3.2.2. Знакомимся с J2ME Wireless Toolkit ............................ 74
3.2.3. Создание проекта в J2ME Wireless Toolkit ................... 75
3.2.4. Компиляция и запуск программы в J2ME
Wireless Toolkit ..................................................................... 77
3.2.5. Упаковка программ..................................................... 79
3.3. Инструментарий NetBeans IDE ............................................. 81
3.3.1. Установка NetBeans IDE .............................................. 82
3.3.2. Установка Mobility Pack ............................................... 85
3.3.3. Создание проекта....................................................... 85
3.3.4. Компиляция и упаковка проекта ................................. 90
3.3.5. Добавление в проект новых эмуляторов..................... 91

Глава 4. Телефонные эмуляторы ........................................... 94
4.1. Motorola ............................................................................... 95
4.2. Nokia .................................................................................... 97
4.2.1. Сайт компании Nokia .................................................. 98
4.2.2. Carbide.j...................................................................... 99

Содержание
Содержание
Содержание
Содержание
Содержание

4.3. BenQSiemens .................................................................... 101
4.4. Sony Ericsson ..................................................................... 104
4.5. Samsung ............................................................................ 104
4.6. Интеграция эмуляторов в NetBeans IDE ............................. 105

Часть II. Разработка программ ............................................. 112

Глава 5. Механизм работы приложений ......................... 113
5.1. Мидлет .............................................................................. 113
5.1.1. Модель работы мидлета ........................................... 119
5.2. Пользовательский интерфейс ........................................... 120
5.3. Переход с экрана на экран ................................................. 122
5.4. Навигация .......................................................................... 128

Глава 6. Классы пользовательского интерфейса ............ 134
6.1. Класс Form ......................................................................... 134
6.1.1. Методы класса Form ................................................. 135
6.2. Класс Item .......................................................................... 137
6.2.1. Класс ChoiceGroup ................................................... 138
6.2.2. Класс DateField ......................................................... 145
6.2.3. Класс TextField .......................................................... 148
6.2.4. Класс StringItem ........................................................ 151
6.2.5. Класс Spacer............................................................. 156
6.2.6. Класс ImageItem ....................................................... 158
6.2.7. Класс Gauge ............................................................. 162
6.3. Класс Alert.......................................................................... 165
6.3.1. Методы класса Alert .................................................. 166
6.4. Класс List ........................................................................... 169
6.4.1. Методы класса List.................................................... 170
6.5. Класс Ticker ....................................................................... 175
6.5.1. Методы класса Ticker................................................ 176
6.6. Класс Image ....................................................................... 178
6.6.1. Методы класса Image ............................................... 179
6.7. Класс Font .......................................................................... 181

Глава 7. Программирование графики ................................ 187
7.1. Класс Canvas ..................................................................... 187
7.1.1. Методы класса Canvas .............................................. 188
7.2. Класс Graphics ................................................................... 189
7.2.1. Методы класса Graphics ........................................... 189
7.3. Рисование линий ............................................................... 191
7.4. Рисование прямоугольников ............................................. 195

Содержание
Содержание
Содержание
Содержание
Содержание

7.5. Рисование дуг .................................................................... 198
7.6. Вывод текста ..................................................................... 201
7.7. Механизм создания игрового цикла .................................. 203
7.8. Перемещение квадрата ..................................................... 204
7.9. Циклическое передвижение объекта по экрану ................. 208
7.10. Столкновение .................................................................. 211
7.11. Перемещение объекта с помощью клавиш ...................... 215

Часть III. Пишем свою первую игру ..................................... 220

Глава 8. Игровые классы.................................................. 221
8.1. Класс GameCanvas............................................................. 222
8.2. Класс Layer ........................................................................ 223
8.3. Класс TiledLayer ................................................................. 224
8.4. Класс LayerManager ........................................................... 225
8.5. Класс Sprite........................................................................ 226
8.6. Создание фонового изображения ..................................... 228
8.7. Обработка событий с клавиш телефона............................. 233
8.8. Анимация в игровом процессе .......................................... 239
8.9. Столкновение объектов ..................................................... 244
8.10. Игра «Метеоритный дождь» ............................................. 252
8.10.1. Идея игры............................................................. 253
8.10.2. Графика ............................................................... 253
8.10.3. Исходные коды ..................................................... 254

Глава 9. Формируем каркас игры ........................................ 255
9.1. Механизм работы мобильных игр ...................................... 255
9.1.1. Вход в игру ............................................................... 256
9.1.2. Инициализация игры ................................................ 256
9.1.3. Игровой цикл............................................................ 256
9.1.4. Обработка ввода пользователя ................................ 257
9.1.5. Игровая логика ......................................................... 257
9.1.6. Синхронизация времени .......................................... 258
9.1.7. Вывод графики на экран........................................... 258
9.1.8. Пауза в игре ............................................................. 258
9.1.9. Выход из игры .......................................................... 258
9.2. Как работают шаблоны ...................................................... 258
9.2.1. Запуск игры и информационная заставка ................ 259
9.2.2. Вступительный ролик ............................................... 259
9.2.3. Меню ........................................................................ 259
9.2.4. Загрузка и запуск игры ............................................. 260

Содержание
Содержание
Содержание
Содержание
Содержание

9.3. Структура классов игры «Метеоритный дождь» ................. 260
9.4. Как устроен каркас игровых классов? ................................ 261
9.5. Класс GameMidlet .............................................................. 262
9.6. Класс Splash ...................................................................... 267
9.7. Класс Loading ..................................................................... 271
9.8. Класс MainGameCanvas ..................................................... 275
9.8.1. Глобальные переменные .......................................... 278
9.8.2. Конструктор класса MainGameCanvas ...................... 279
9.8.3. Метод createGame() ................................................. 280
9.8.4. Установка объектов и обновление состояния игры .. 281
9.8.5. Выводим графику на экран телефона....................... 282
9.8.6. Обработка клавиш выбора ....................................... 283
9.8.7. Игровой цикл............................................................ 285

Глава 10. Добавляем в игру меню ....................................... 293
10.1. Идея реализации игрового меню ..................................... 293
10.2. Класс Menu ...................................................................... 294
10.3. Планируем запуск меню................................................... 303

Глава 11. Создание игровых карт ........................................ 307
11.1. Игровая карта .................................................................. 307
11.1.1. Техника компоновки карт ...................................... 307
11.2. Многослойные карты ....................................................... 309
11.3. Инструменты создания игровых карт ............................... 309
11.3.1. Создаем карту....................................................... 310
11.4. Класс Background ............................................................ 313
11.5. Загружаем в игру карту .................................................... 316
11.6. Работа с памятью телефона ............................................. 323
11.6.1. Запись данных в память ........................................ 324
11.6.2. Чтение данных ...................................................... 325

Глава 12. Создание и перемещение корабля
 по экрану .......................................................................... 327
12.1. Класс Sprite ...................................................................... 327
12.1.1. Конструкторы класса Sprite ................................... 328
12.1.2. Методы класса Sprite ............................................ 329
12.1.3. Константы класса Sprite ........................................ 329
12.2. Класс Ship ........................................................................ 329
12.2.1. Создаем корабль .................................................. 330
12.2.2. Исходный код класса Ship.java .............................. 331
12.2.3. Создание объекта класса Ship .............................. 338

Содержание
Содержание
Содержание
Содержание
Содержание

12.3. Проект Demo .................................................................... 345
12.3.1. Класс Background.java........................................... 346
12.3.2. Класс Ship.java ...................................................... 348
12.3.3. Класс MainGameCanvas.java.................................. 350
12.3.4. Класс GameMidlet.java ........................................... 354

Глава 13. Основы искусственного интеллекта ................. 357
13.1. Структура классов в демонстрационных примерах.......... 358
13.1.1. Класс GameMidlet .................................................. 358
13.1.2. Класс Splash.......................................................... 360
13.1.3. Класс Loading ........................................................ 361
13.1.4. Класс Background ................................................. 362
13.1.5. Класс Ship ............................................................. 365
13.1.6. Класс Boll .............................................................. 365
13.1.7. Класс MainGameCanvas......................................... 366
13.2. Движение в заданном направлении ................................. 370
13.3. Движение объекта за целью ............................................ 371
13.4. Движение объекта от цели ............................................... 372
13.5. Движение в случайном направлении ............................... 374
13.6. Шаблоны.......................................................................... 377
13.7. Шаблоны с обработкой событий...................................... 380
13.8. Модель простой системы смены состояний .................... 382
13.9. Распределенная логика смены состояний объекта .......... 385

Глава 14. Движение спрайтов в пространстве ................. 389
14.1. Метеориты ....................................................................... 389
14.1.1. Класс Meteorite ..................................................... 390
14.1.2. Движение метеоритов .......................................... 391
14.2. Реализуем стрельбу корабля ........................................... 394
14.2.1. Класс Shot ............................................................. 395
14.2.2. Класс Ship ............................................................. 395
14.2.3. Движение пуль ...................................................... 397

Глава 15. Игровые столкновения ......................................... 406
15.1. Пишем код для обработки игровых столкновений ........... 406
15.1.1. Столкновения корабля с метеоритом.................... 407
15.1.2. Столкновение пуль и метеоритов .......................... 408
15.2. Рисуем на экране взрывы ................................................ 409
15.3. Добавляем в игру подсчет набранных очков .................... 412
15.4. Механизм подсчета жизненной энергии корабля ............ 413
15.5. Графическое представление жизненной энергии
корабля на экране телефона .................................................... 415

Содержание
Содержание
Содержание
Содержание
Содержание

Глава 16. Звуковые эффекты ............................................... 427
16.1. Пакет javax.microedition.media.......................................... 428
16.1.1. Интерфейс Control ................................................ 428
16.1.2. Интерфейс Controllable ......................................... 428
16.1.3 Интерфейс Player ................................................... 428
16.1.4. Интерфейс PlayerListener ...................................... 429
16.1.5. Класс Manager ...................................................... 430
16.2. Пакет javax.microedition.media.control ............................... 430
16.2.1. Интерфейс ToneControl ......................................... 430
16.2.2. Интерфейс VolumeControl ..................................... 431
16.3. Воспроизведение звуковых файлов................................. 431
16.4. Воспроизведение тональных звуков ................................ 432
16.5. Добавляем звук в игру ..................................................... 438

Приложение 1. Обзор компактдиска ................................. 444

Приложение 2. Справочник по Java 2 Micro Edition ......... 445
2.1. Пакет java.lang .................................................................... 445
2.1.1. Интерфейс Runnable................................................. 445
2.1.2. Класс Boolean ........................................................... 445
2.1.3. Класс Byte................................................................. 446
2.1.4. Класс Character......................................................... 446
2.1.5. Класс Class ............................................................... 447
2.1.6. Класс Integer ............................................................. 447
2.1.7. Класс Long ................................................................ 448
2.1.8. Класс Math ................................................................ 449
2.1.9. Класс Object ............................................................. 449
2.1.10. Класс Runtime ......................................................... 450
2.1.11. Класс Short ............................................................. 450
2.1.12. Класс String ............................................................ 451
2.1.13. Класс StringBuffer ................................................... 453
2.1.14. Класс System .......................................................... 454
2.1.15. Класс Thread ........................................................... 457
2.1.16. Класс Throwable ...................................................... 455
2.1.17. Исключения ............................................................ 457
2.1.18. Ошибки ................................................................... 456
2.2. Пакет java.util ...................................................................... 457
2.2.1. Интерфейс Enumeration ............................................ 457
2.2.2. Класс Calendar .......................................................... 457
2.2.3. Класс Date ................................................................ 458
2.2.4. Класс Hashtable ........................................................ 458

10
10
10
10
Содержание
Содержание
Содержание
Содержание
Содержание

2.2.5. Класс Random ........................................................... 459
2.2.6. Класс Stack ............................................................... 460
2.2.7. Класс Timer ............................................................... 460
2.2.8. Класс TimerTask ........................................................ 461
2.2.9. Класс TimeZone ........................................................ 461
2.2.10. Класс Vector ............................................................ 461
2.2.11. Исключения ............................................................ 463
2.3. Пакет java.io........................................................................ 463
2.3.1. Интерфейс DataInput ................................................ 463
2.3.2. Интерфейс DataOutput .............................................. 463
2.3.3. Класс ByteArrayInputStream ...................................... 464
2.3.4. Класс ByteArrayOutputStream .................................... 465
2.3.5. Класс DataInputStream .............................................. 465
2.3.6. Класс DataOutputStream............................................ 466
2.3.7. Класс InputStream ..................................................... 467
2.3.8. Класс InputStreamReader .......................................... 468
2.3.9. Класс OutputStream .................................................. 468
2.3.10. Класс OutputStreamWriter ........................................ 468
2.3.11. Класс PrintStream .................................................... 469
2.3.12. Класс Reader........................................................... 470
2.3.13. Класс Writer ............................................................. 470
2.3.14. Исключения ............................................................ 471
2.4. Пакет javax.microedition.io .................................................. 471
2.4.1. Интерфейс CommConnection.................................... 471
2.4.2. Интерфейс Connection.............................................. 471
2.4.3. Интерфейс ContentConnection.................................. 471
2.4.4. Интерфейс Datagram ................................................ 472
2.4.5. Интерфейс DatagramConnection ............................... 472
2.4.6. Интерфейс HttpConnection ....................................... 472
2.4.7. Интерфейс HttpsConnection...................................... 474
2.4.8. Интерфейс InputConnection ...................................... 474
2.4.9. Интерфейс OutputConnection.................................... 474
2.4.10. Интерфейс SecureConnection ................................. 474
2.4.11. Интерфейс SecurityInfo ........................................... 474
2.4.12. Интерфейс ServerSocketConnection........................ 475
2.4.13. Интерфейс SocketConnection ................................. 475
2.4.14. Интерфейс StreamConnection ................................. 475
2.4.15. Интерфейс StreamConnectionNotifier ...................... 475
2.4.16. Интерфейс UDPDatagramConnection ...................... 475
2.4.17. Класс Connector...................................................... 476