Программирование arrow Java arrow Программирование двухмерных игр на J2ME

Программирование двухмерных игр на J2ME

Оглавление

Вашу игру легко запустить на вашем собственном мобильном телефоне

Программирование двухмерных игр на J2ME - Java - Программирование - Программирование, исходники, операционные системы

Введение

J2ME – это интересная среда для игр. Имея базовые знания Java, заранее установленные NetBeans и J2ME Wireless Toolkit (беспроводной инструментарий J2ME), вы можете создавать простые, забавные двухмерные игры, которые можно запускать на ваших собственных мобильных устройствах.

В этой статье показано использование интерфейса прикладного программирования (API) 5-класса Game,скомпонованного в пакет javax.microedition.lcdui.game.

Предпосылки

Здесь предполагается, что вы имеете базовые знания Java, знакомы с NetBeans и прочитали статью “Введение в программирование на Java ME”. Создание игр также требует определенных знаний физики, включая динамику Ньютона, движения, столкновения, и так далее.

Недавно мы принимали участие в проекте под названием “Интенсивные программы разработки приложений для мобильных устройств”, организованном нашим университетом и его партнерами. Проект финансировался Uramus - программой поддержки студенческого обмена между европейскими странами. Мы начали работать с J2ME, что в итоге привело к написанию этой статьи.

Использование GameBuilder облегчает процесс разработки игры. Однако он не будет подробно описываться в данной статье. Подробную информацию о разработке игр с помощью GameBuilder можно найти здесь.

Использование кода

MainMidlet (главный мидлет)

Как и Midlet, MainMidlet должен расширять абстрактный класс Midlet, который можно найти в пакете javax.microedition.midlet.  Midlet требует переопределения трех методов: 

  • startApp(), вызываемого для запуска игры
  • pauseApp(), вызываемого для временной остановки приложения, например, при приеме вызова. Приложение должно прекратить отображение анимации и освободить ресурсы, которые больше ему не нужны. Работу приложения можно возобновить с помощью вызова resumeMIDlet() 
  • destroyApp(boolean unconditional), вызываемого при выходе из приложения. Мидлет может вызвать notifyDestroyed(), чтобы прервать работу

(Эти методы автоматически создаются при создании Визуального мидлета в NetBeans.)

Однако, нам всего лишь нужно реализовать методы startApp() путем создания экземпляра класса GameCanvas и добавления CommandListener для выхода из Midlet (мидлета). Конечно же, это не лучший способ программирования, но на этом этапе нам только лишь нужно, чтобы приложение выполнялось. В качестве текущего средства вывода изображения можно установить GameCanvas в конце или внутри GameCanvas с помощью метода setCurrent. Этот метод принимает любые объекты Displayable (отображаемые) в качестве аргумента. 

public class MainMidlet extends MIDlet implements CommandListener {
    private SSGameCanvas gameCanvas ;
    private Command exitCommand ;
    public void startApp() {
        try {
           //создание нового потока игры
            gameCanvas = new SSGameCanvas();
            gameCanvas.start(); // запуск потока игры
            exitCommand = new Command("Exit",Command.EXIT,1);
            gameCanvas.addCommand(exitCommand);
            gameCanvas.setCommandListener(this);
            Display.getDisplay(this).setCurrent(gameCanvas);
        }
        catch (java.io.IOException e) { e.printStackTrace();}
    }
public void pauseApp() {}
public void destroyApp(boolean unconditional) {}
public void commandAction(Command command, Displayable displayable) {
        if (command == exitCommand) {
            destroyApp(true);
            notifyDestroyed();
        }
    }
}


 
Следующая статья »


  • Java, Введение в JavaFX – Модель шахмат
    Данная статья описывает попытку изучить язык программирования JavaFX путем написания программы «Шахматы»....
  • Java, Программа просмотра Java-классов (Java Class Viewer)
    Class File из Java является одной из ключевых причин того, что Java может оперировать на различных платформах. Файл Java-класса разработан в качестве битового потока, со специфической структурой, описанной в четвертой главе спецификации JVM.   ...
  • Java, Особенности Java 5. Часть 2
    В первой части мы обсудили новые возможности Java 5 относительно функции auto-boxing и цикла foreach. В данной части мы обсудим поддержку функций с переменным числом аргументов и статическое импортирование (static import). Поскольку другие функции, такие как enum, annotation, и generics, заслуживают отдельной статьи, мы их не будет демонстрировать в данной....
  • Java, Особенности Java 5
    Java 5 обладает некоторыми полезными возможностями. В данной статье мы рассмотрим их и узнаем, как можно извлечь из них выгоду. В этой части мы рассмотрим auto-boxing foreach....
  • Java, Внезапное закрытие Java-приложения: как этого избежать?
    Во многих случаях у программистов возникает необходимость выполнить некоторые действия в момент, когда пользователь заканчивает работу с приложением. Но проблема состоит в том, что пользователи не всегда пользуются рекомендованными и правильными способами выхода из приложения. Java предоставляет элегантный подход к выполнению какого-либо кода в середине процесса выгрузки процесса вашего приложения, таким образом гарантируя, что этот код, который, например, занимается какими-либо "очиститель...
  • Java, Создание Java-апплета для отображения географических карт
    Многие начинающие Java-программисты, после знакомства с базовыми возможностями и методами создания Java-апплетов, пробуют применить полученные знания для написания уже собственных апплетов - небольших программ, добавляемых к веб-странице. Итак, если вы тоже один из них, то сегодня мы попробуем вместе создать свой несложный апплет для отображения географической карты. Целью создания данного приложения будет то, что часто требуется разместить план или карту того или иного объекта больших размеров....
  • Java, Восемь мифов про Java
    В статье будут рассмотрены восемь наиболее распространенных мифов и заблуждений о Java....