|
Бесплатная кросплатформенная среда разработки NetBeans отлично подходит для создания MIDlet приложений. Этот цикл из четырех уроков познакомит Вас с визуальными средствами разработки J2ME приложений. Вы создадите аркадную игру, используя NetBeans Visual Designer и NetBeans Game Builder. Схема экранов игры приведена на рисунке
Данный текст является переводом-адаптацией документа «LAB-6400: Create Your Own Mobile Game», который можно скачать на сайте java.com.sun.
В рамках первого урока мы познакомимся с NetBeans Visual Designer. Итак, для начала нам нужно установить полную версию NetBeans IDE. (Если вы не собираетесь связывать свою игру с внешним сервером, достаточно загрузить NetBeans Mobility).
1. Создаем новый проект в NetBeans
Первый шаг при создании любого NetBeanse приложения – создание проекта.
- Выбираем File>New Project или просто кликаем по иконке New Project на панели инструментов.
- Появится диалог New Project, где необходимо указать категорию проекта и его тип. Выбираем значения Mobile и MIDP Application соответственно.
- Нажмем Next и вводим название проекта Hello.
- Помечаем галочкой Set as Main Project и Create Hello MIDlet и жмем Next, а затем Finish. В результате откроется окно визуального дизайнера
- Выбираем компонент Alert из категории Displayables в окне Palette в правой части экрана.
- Перетаскиваем иконку Alert в область Visual Designer Flow.
- В результате появится значок alert, таким образом мы только что добавили экранный компонент окна предупреждения к своему проекту.
- Изменим заголовок alert на строку "Help", для этого просто измените свойство Title в области property в правой части IDE (Включить/выключить окно properties можно через меню Window>Properties).
- Следующим шагом мы изменим текст, который будет отображаться в окне предупреждения. Переведем визуальный редактор в режим редактирования экрана. Для этого нужно просто нажать кнопочку Screen в его верхней панельке.
- Выберите компонент alert в выпадающем меню в верхней части окна. В результате будет отображаться окно alert компонента в Device Screen области документа.
- Подведите указатель мыши в окне редактирования к области text not specified и дважды щелкните ней рамочке, затем введите текст и нажмите Enter.
- Переключитесь обратно в редактор потоков (кнопка Flow над окном редактирования) и перетащите Help Command с паллеты на компонент form. Команда Help будет добавленf на компонент формы.
- Теперь свяжем эту команду нашим alert компонентом. Выберите helpCommand на форме и перетащите ее на компонент alert (в процессе перетаскивания должна отображаться линия со стрелкой).
- Таким образом, мы связали два компонента (Компонент alert автоматически настраивается на возврат к компоненту из которого он вызван, поэтому на экране появится не одна, а две стрелки, связывающие helpCommand и alert.
2. Сборка и запуск проекта в NetBeans
- Для запуска проекта можно выбрать меню Run>Run Main Project либо нажмите зеленую кнопочку плей, либо просто F6. При этом сохранятся все файлы, соберется проект, а затем запустится эмулятор с HelloMidlet
- Запустите приложение. В окне эмулятора должна отображаться форма Hello, нажмите кнопку Help. Не забудьте закрыть эмулятор после тестирования, прежде чем переходить к правке приложения.
3. Custom Component
Как видите, на панели компонент присутствует множество различных иконок. Вы можете сами разрабатывать компоненты и добавлять их на эту панель. На этом шаге мы добавим на панель компонент-заготовку. Скачайте файл 6400_mobilegame.zip и распакуйте его в какую-нибудь папочку. В этом архиве содержатся исходники примеров и необходимые нам ресурсы. Словом lab_root будем обозначать папку, куда Вы распаковали архив.
- Откройте проект File > Open Project.
- Выберите MobileGameApp в папке lab_root/exercises/exercise1/ и отметьте Open as Main Project.
- Проект откроется и добавится в таблицу Projects в IDE. Убедитесь, что проект открыт как главный. (Название проекта должно быть выделено жирным шрифтом. В противном случае щелкните правой кнопкой на узел и выберите Set as Main Project из всплывающего меню.)
- Раскройте в окне Project справа экрана ветку MobileGameApp>Source Packages>org.netbeans.j1.game>GameMIDlet.java и дважды щелкнете на файл. В результате откроется проект следующей структуры
- Для добавления custom компонента на паллету выберите Tools > Palette > MIDP Visual Mobile Designer (или Tools > Palette > Mobillity Component в NetBeans 6.5). В результате появится Palette Manager.
- В этом окне щелкните на Add to Palette. Появится мастер добавления новых компонентов.
- На первой странице выберите проект из которого Вы хотите добавить компонент. В нашем случае нужно выбрать MobileGameApp.
- Нажмите Next и выберите class для добавления. По умолчанию этот диалог показывает только компоненты, имеющие исходники. Выберите класс org.netbeans.j1.game.MazeCanvas.
- В этом диалоге Вы можете также определить категорию, в которую Вы собираетесь добавить компонент. Для custom компонент выберите узел Custom Components.
- Закройте palette manager. Компонент MazeCanvas теперь доступен для визуального редактирования.
4. Определяем потоки (Flow) нашего MIDlet-а
Когда пользователь закончит игру, приложение должно сохранить очки, потребовав ввести userID. Очки должны добавляться в Top10 таблицу результатов. Если пользователь потом улучшить свой результат, таблица должна обновиться. Из окна с таблицей результатов пользователь может перейти в главное меню или закрыть приложение.
- Перейдем в Flow Designer и перетащите компонент MazeCanvas из паллеты в Flow Designer. Компонент MazeCanvas должен появиться в дизайнере потоков. Этой простой операцией мы просто добавляем экранный компонент в редактор. В окне редактора потоков щелкните на menuItem_0 и перетащите стрелку к MazeCanvas компоненту. Таким образом, мы создали связь между экранами. На рисунке показана конечная схема потоков нашего приложения.
- Нажмите правой кнопкой по MazeCanvas и выберите Properties. Измените свойство midlet(1.-con…) на this.
- Теперь мы должны ввести код, который запустит поток игры. Для добавления этой функции нужно щелкнуть по кнопке Source сверху окна GameMIDlet. Найдите метод svgMainMenuAction, для этого можете использовать либо Ctrl+F, либо Navigator в левом нижнем углу IDE.
- В этом методе измените код на следующий
public void svgMainMenuAction() {
// enter pre-action user code here
String __selectedElement =
etSvgMainMenu().getMenuElementID(getSvgMainMenu().getSelectedIndex());
if (__selectedElement != null) {
if (__selectedElement.equals("menuItem_0")) {
switchDisplayable(null, getMazeCanvas());
// write post-action user code here
//TODO: [Exercise1][step4] It starts the game thread
myGameThread = new GameThread(getMazeCanvas(), this);//[Exercise1]
myGameThread.start();//[Exercise1]
} else if (__selectedElement.equals("menuItem_1")) {
Заключение
Итак, на этом уроке мы познакомились с NetBeans Visual Designer и обозначили структуру нашей игры. В следующий раз мы займемся непосредственно игрой.
|