Программирование мобильных телефонов на Java 2 Micro Edition
Покупка
Тематика:
Программирование на Java
Издательство:
ДМК Пресс
Год издания: 2008
Кол-во страниц: 512
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Аспирантура
ISBN: 5-94074-409-5
Артикул: 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 Москва
УДК 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