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

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


Скачать книгу

0);

      canvas.addCommand(exitCommand);

      canvas.setCommandListener(this);

      }

      // инициализация

      canvas.start(); //Метод start() холста запускает мидлет

      }

      public void pauseApp() {}

      public void destroyApp(boolean unconditional) {}

      public void commandAction(Command c, Displayable s) {

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

      destroyApp(true);

      notifyDestroyed();

      }

      }

      }

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

      Тестирование готового приложения

      Чтобы собрать и протестировать мидлет Olympics, скопируйте папку Olympics в папку apps, расположенную в папке установки J2ME Wireless Toolkit. Чтобы собрать мидлет, щелкните по кнопке Build (Собрать), а чтобы запустить эмулятор J2ME, щелкните по кнопке Run (Запустить). На рис. 4.5 показан мидлет The Olympics MIDlet.

      Рис. 4.5. Мидлет The Olympics MIDlet демонстрирует построение основных геометрических фигур

      Создание слайд-шоу

      Хотя мидлет Olympics очень интересен и полезен для знакомства с программированием графики мидлета, вы, вероятно, хотите большего. Например, увидеть, как выводится текст и графика в контексте мидлета. В этой части книги вы разработаете слайд-шоу, что поможет вам попрактиковаться в выводе изображений и текста. Очевидно, слайд-шоу – не игра, однако этот мидлет поможет вам изучить основные приемы создания графики игр, например, комбинирование изображений и текста, а также обработку пользовательского ввода.

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

      Мидлет Slideshow загружает несколько изображений и текст, после чего выводится на экран. Пользователь может пролистывать страницы слайд-шоу, используя клавиши со стрелками. Поскольку слайд-шоу относится к графической части мидлета, большая часть кода сосредоточена в классе SSCanvas, который хранит изображения и подписи под ними:

      private Display display;

      private Image[] slides;

      private String[] captions = { "Love Circle Bowl", "Double Wide Spine",

      "Flume Zoom Over-vert", "Kulp De Sac Bowl",

      "Louie's Ledge" };

      private int curSlide = 0;

      Переменная sliders – это массив объектов Image, она инициализируется в конструкторе класса SSCanvas. Ниже приведен код этого конструктора:

      public SSCanvas(Display d) {

      super();

      display = d;

      // загрузить изображения слайд-шоу

      try {

      slides = new Image[5];

      slides[0] = Image.createImage("/LoveCircle.jpg");

      slides[1] = Image.createImage("/DoubleWide.jpg");

      slides[2] = Image.createImage("/FlumeZoom.jpg");

      slides[3] = Image.createImage("/KulpDeSac.jpg");

      slides[4] = Image.createImage("/LouiesLedge.jpg");

      }

      catch (IOException e) {

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

      }

      }

      Этот код понять очень просто, он создает массив объектов Image и инициализирует каждый элемент, загружая с помощью метода Image.createImage() соответствующее изображение. Важно отметить, что имя каждого файла изображения начинается с символа / (Косой слеш), обозначающего, что файл расположен в корневой директории мидлета. Это важно, так как эти изображения упакованы в JAR-архив вместе с классом мидлета, а следовательно, они должны быть доступны для чтения.

      В копилку Игрока

      Если вам интересно, что за изображения помещены в слайд-шоу, то это фотографии общественного скейт-парка, строящегося в моем городе, Нэшвилле, штат Теннеси.