Докуметация Cтарт Статьи Форум Лента Вход
Не официальное русскоязычное сообщество
Главная
    Документация jMonkeyEngine
        jMonkeyEngine Уроки и Документация
            Запуск JME3 приложения из командной строки

Запуск JME3 приложения из командной строки

Опубликованно: 18.10.2017, 19:05
Последняя редакция, Andry: 10.11.2017 18:39

Хотя мы рекомендуем jMonkeyEngine SDK для разработки JME3 игр, но вы можете использовать любую среду IDE (интегрированную среду разработки), такую как NetBeans или Eclipse, и даже свободно работать из командной строки. Вот общий независимый от IDE урок по «началу работы».

В этом примере показано, как настроить и запустить простое приложение (HelloJME3), которое зависит от библиотек jMonkeyEngine3.

Структура папок будет выглядеть следующим образом:

jme3/
jme3/lib
jme3/src
...
HelloJME3/
HelloJME3/lib
HelloJME3/assets
HelloJME3/src
...

Установка JME3 Фреймворка

Чтобы установить версию jme3 для разработки, загрузите последнюю стабильную версию, распакуйте папку в каталог с название jme3. Названия файлов здесь всего лишь для примера, но они всегда будут чем-то вроде jME3.x-stable.

mkdir jme3
cd jme3
unzip jME3.1-stable.zip

Кроме того, вы можете собирать JME3 из исходников. (Рекомендуется для разработчиков JME3.)

svn checkout https://jmonkeyengine.googlecode.com/svn/branches/3.0final/engine jme3
cd jme3
ant run
cd ..

Если вы видите, что Test Chooser приложения теперь открыто, значит сборка прошла успешно.

Используйте просто ant вместо ant run для соборки библиотек без запуска демонстраций.

Пример структуры папок проекта

Сначала мы создаем структуру папок и пакетов исходников для вашего игрового проекта. Обратите внимание, что папка игрового проекта HelloJME3 находится на том же уровне, что и ваша jme3. В этом примере мы создаем пакет Java, который мы назвали hello в папке исходников.

mkdir HelloJME3
mkdir HelloJME3/src
mkdir HelloJME3/src/hello

Библиотеки

Затем вы копируете необходимые JAR библиотеки из загруженных в свой проект. Вам нужно выполнять этот набор шагов каждый раз при скачивании новой сборки JME3. Подробное описание отдельных файлов jar см. в этом списке.

mkdir HelloJME3/build
mkdir HelloJME3/lib
cp jme3/lib/*.* HelloJME3/lib

Если вы собрали JME3 из исходников, значит пути копирования разные:

mkdir HelloJME3/build
mkdir HelloJME3/lib
cp jme3/dist/*.* HelloJME3/lib

Пример кода

Чтобы протестировать вашу настройку, создайте файл HelloJME3/src/hello/HelloJME3.java с помощью любого текстового редактора, и вставьте следующий пример кода и сохраните.

package hello;

import com.jme3.app.SimpleApplication;
import com.jme3.material.Material;
import com.jme3.math.Vector3f;
import com.jme3.scene.Geometry;
import com.jme3.scene.shape.Box;
import com.jme3.math.ColorRGBA;

public class HelloJME3 extends SimpleApplication {

    public static void main(String[] args){
        HelloJME3 app = new HelloJME3();
        app.start();
    }

    @Override
    public void simpleInitApp() {
        Box b = new Box(Vector3f.ZERO, 1, 1, 1);
        Geometry geom = new Geometry("Box", b);
        Material mat = new Material(assetManager,
          "Common/MatDefs/Misc/Unshaded.j3md");
        mat.setColor("Color", ColorRGBA.Blue);
        geom.setMaterial(mat);
        rootNode.attachChild(geom);
    }
}

Сборка и Запуск

Мы соберем образец приложения в папке сборки…

cd HelloJME3
javac -d build -cp "lib/eventbus-1.4.jar:lib/j-ogg-oggd.jar:lib/j-ogg-vorbisd.jar:lib/jME3-lwjgl-
natives.jar:lib/jbullet.jar:lib/jinput.jar:lib/lwjgl.jar:lib/stack-alloc.jar:lib/vecmath.jar:lib/xmlpull-xpp3-
1.1.4c.jar:lib/jME3-blender.jar:lib/jME3-core.jar:lib/jME3-desktop.jar:lib/jME3-jogg.jar:lib/jME3-plugins.jar:lib/jME3-
terrain.jar:lib/jME3-testdata.jar:lib/jME3-niftygui.jar:lib/nifty-default-controls.jar:lib/nifty-examples.jar:lib/nifty-style-
black.jar:lib/nifty.jar:." src/hello/HelloJME3.java

… и запустим его.

cd build
java -cp "../lib/eventbus-1.4.jar:../lib/j-ogg-oggd.jar:../lib/j-ogg-vorbisd.jar:../lib/jME3-lwjgl-
natives.jar:../lib/jbullet.jar:../lib/jinput.jar:../lib/lwjgl.jar:../lib/stack-alloc.jar:../lib/vecmath.jar:../lib/xmlpull-xpp3-
1.1.4c.jar:../lib/jME3-blender.jar:../lib/jME3-core.jar:../lib/jME3-desktop.jar:../lib/jME3-jogg.jar:../lib/jME3-
plugins.jar:../lib/jME3-terrain.jar:../lib/jME3-testdata.jar:../lib/jME3-niftygui.jar:../lib/nifty-default-
controls.jar:../lib/nifty-examples.jar:../lib/nifty-style-black.jar:../lib/nifty.jar:." hello/HelloJME3
Если вы используете Windows, разделитель classpath имеет значение \ вместо /

Если появится диалоговое окно настроек, подтвердите настройки по умолчанию. Теперь вы должны увидеть простое окно с 3D кубом. Используйте мышь и клавиши WASD для перемещения. Оно работает!

Рекомендуемая структура папок Asset

Для мультимедийных файлов, моделей и других игровых ресурсов мы рекомендуем создать следующую структуру проекта:

cd HelloJME3
mkdir assets
mkdir assets/Interface
mkdir assets/Materials
mkdir assets/MatDefs
mkdir assets/Models
mkdir assets/Scenes
mkdir assets/Shaders
mkdir assets/Sounds
mkdir assets/Textures

Эта структура папок позволит AssassManager идущему по умолчанию в SimpleApplication загружать медиафайлы из вашей папки assets, как в этом примере:

import com.jme3.scene.Spatial;
...
  Spatial elephant = assetManager.loadModel("Models/Elephant/Elephant.meshxml");
  rootNode.attachChild(elephant);
...

Вы узнаете больше об asset manager и о том, как его настроить позже. А пока не стесняйтесь структурировать свои игровые ресурсы (изображения, текстуры, модели) в дальнейшие подкаталоги, например, как в этом примере в папке assets/models/Elephant, находится модель elephant.mesh.xml и ее материалы.

Следующий шаг

Теперь следуйте урокам и напишите свою первую игру jMonkeyEngine.


Переведено для jmonkeyengine.ru, оригинал
Автор перевода: Andry

Добавить комментарий

jMonkeyEngine.ru © 2017. Все права сохранены.