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

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

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

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

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

Существует множество способов установить JME-инфраструктуру из командной строки, но для этого урока мы сократим ее до двух, простой и трудный путь.

Установка с помощью Git (простой способ)

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

mkdir jme3
cd jme3

// если у вас настроен ключ rsa
git clone git@github.com:jMonkeyEngine/jmonkeyengine.git
// или
// если вы этого не сделаете, но вас попросят ввести учетные данные после следующей команды
git clone https://github.com/jMonkeyEngine/jmonkeyengine.git
//может занять некоторое время

// собрать движок и установить его в локальном репозитории maven.
./gradlew install
Что такое RSA ключ?

Команда install установит встроенные jar-ы в локальную папку maven-хранилища org.jmonkeyengine, которая на Linux равна ~/.m2, а в Windows может быть в AppData или в вашем домашнем каталоге.

Чтобы использовать движок в игровом проекте, вы можете использовать BootMonkey или клонировать проект шаблона из GitHub.

Чтобы использовать шаблон, сначала создайте папку для своего проекта:

cd ..
mkdir HelloJME3
cd HelloJME3

Затем, клонируйте один из этих шаблонов:

После клонирования откройте файл build.gradle и раскомментируйте репозиторий mavenLocal(), измените переменную версии и раскомментируйте любые зависимости, которые вам понадобятся:

repositories {
    //Здесь хранятся зависимости jme3.
    jcenter()

    //Раскомментируйте это, если вы устанавливаете локальные зависимости.
    mavenLocal()

    //Раскомментируйте это, если вы используете внешние зависимости
    //mavenCentral()

    //Раскомментируйте это, если вы используете jme3-niftygui
    //maven{url 'http://nifty-gui.sourceforge.net/nifty-maven-repo'}

}

ext.jmeVersion = "[3.2,)"

...

dependencies {

    compile "org.jmonkeyengine:jme3-core:$jmeVersion"
    compile "org.jmonkeyengine:jme3-desktop:$jmeVersion"
    compile "org.jmonkeyengine:jme3-lwjgl:$jmeVersion"

    //Those are jme3 additional library uncomment the ones you need
    //compile "org.jmonkeyengine:jme3-android-native:$jmeVersion"
    //compile "org.jmonkeyengine:jme3-android:$jmeVersion"
    //compile "org.jmonkeyengine:jme3-bullet-native-android:$jmeVersion"
    //compile "org.jmonkeyengine:jme3-blender:$jmeVersion"
    //compile "org.jmonkeyengine:jme3-bullet-native:$jmeVersion"
    //compile "org.jmonkeyengine:jme3-bullet:$jmeVersion"
    //compile "org.jmonkeyengine:jme3-effects:$jmeVersion"
    //compile "org.jmonkeyengine:jme3-jogg:$jmeVersion"
    //compile "org.jmonkeyengine:jme3-jogl:$jmeVersion"
    //compile "org.jmonkeyengine:jme3-lwjgl3:$jmeVersion"
    //compile "org.jmonkeyengine:jme3-networking:$jmeVersion"
    //compile "org.jmonkeyengine:jme3-plugins:$jmeVersion"
    //compile "org.jmonkeyengine:jme3-terrain:$jmeVersion"

    //Вам нужно раскомментировать nifty репозиторий в разделе репозиториев, если вы используете эту зависимость
    //compile "org.jmonkeyengine:jme3-niftygui:$jmeVersion"

    runtime project(':assets')
}
...

Подробное описание отдельных jar файлов см. в этом списке.

Вот и все, все готово. После клонирования у вас будет проект, содержащий пакет исходников с приложением Java JME3 с синим кубом и подпроектом, который имеет надлежащую структуру каталогов asset для ваших игровых ресурсов.

Собрав и запустив свой проект, вы должны увидите синий куб.

Загрузка вручную (трудный путь)

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

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

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

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

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

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

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

mkdir HelloJME3
mkdir HelloJME3/src
mkdir HelloJME3/src/mygame

Библиотеки

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

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

Пример кода

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

package mygame;

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.jar:lib/j-ogg-all.jar:lib/jme3-lwjgl.jar:lib/jme3-
bullet.jar:lib/jinput.jar:lib/lwjgl.jar:lib/stack-alloc.jar:lib/vecmath.jar:lib/xpp3.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/mygame/HelloJME3.java

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

cd build
java -cp "../lib/eventbus.jar:../lib/j-ogg-all.jar:../lib/jme3-lwjgl.jar:../lib/jme3-
bullet.jar:../lib/jinput.jar:../lib/lwjgl.jar:../lib/stack-alloc.jar:../lib/vecmath.jar:../lib/xpp3.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:." mygame/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. Все права сохранены.