Доброго часа уважаемые форумчане! Я заметил что на сайте полно уроков по разным движкам и языкам программирования, но почему то я не нашел ни одного урока по JMonkeyEngine. Не смотря на то, что движок на писан на Java, он очень даже хорош. Из особенностей хотелось бы отметить следующее:
Открытый исходный код, и соответственно бесплатность в любых ее проявлениях;
Мультиплатформенность;
Неплохой редактор миров, шейдеров и т.д.;
Современная графика. Заинтересовавшись всеми его плюсами я решил плотно сесть за его изучение и вот сейчас решил поделиться накопленным опытом. Для начала хочу предоставь вводный урок, который поможет понять принципы работы в данном движке. Итак приступим...
УРОК №1.
Для начала создадим новый проект, для этого заходим в "Файл->Создать проект", в категориях выбираем "JME3", в проектах "BasicGame". Жмём "Далее", задаем название (У меня он будет называться "Example") проекта, затем "Готово". В классе "Main" у вас должно получиться следующее:
public static void main(String[] args) { Main app = new Main(); app.start(); }
public void simpleInitApp() {
}
public void simpleUpdate(float tpf) {
}
}
Операторы импорта оставим, потому что они нам пригодятся. (В среде JME нет необходимости самому прописывать импорт необходимых библиотек, как и в, например, Eclipse. Среда сама предложит добавить недостающие операторы импорта, предварительно выдав ошибку об их отсутствии). Далее в методе "public void simpleInitApp()" пишем следующее:
Код
Box b = new Box(Vector3f.ZERO, 1,1,1); Geometry g = new Geometry("box", b); Material m = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md"); m.setColor("Color", ColorRGBA.White); g.setMaterial(m);
Описание строк соответственно: Создаем объект "b" типа "Box". В скобках указываем его начальное положение (В примере он располагается в нулевом векторе) и размеры (1x1x1); Создаем объект "g" типа "Geometry", который будет рисовать объект указанный в скобках; Создаем новый материал "m". В скобках указываем что указываем что загружаем "Unshaded" материал из AssetManager'а. (Потом покажу как загружать свой материал); Задаем цвет для материала "m". "Color" показывает цвет какого типа загружаем. (В разных видах материалов их много); Присваиваем геометрии "g" созданный ранее материал.
Запускаем проект и... видим черный экран. Правильно, ведь чтоб геометрия была видна, нужно "приаатачить" ее к корневому узлу. Для этого после присваивания материала добавим следующее:
Код
rootNode.attachChild(g);
К узлу "rootNode" добавляем дочерний объект "g". После запуска проекта вы должны увидеть белый кубик. Заметим, что при передвижении мыши камера вращается. Это "flyCam", с ним мы в дальнейшем будем работать, но сейчас давайте его выключим. Для этого в методе "public void simpleInitApp()" добавим следующее:
Код
flyCam.setEnabled(false);
Теперь давайте заставим наш кубик вращаться. Чтоб как-то манипулировать геометрией "g" из другого метода (В данном случае это будет постоянно обновляющийся метод "public void simpleUpdate(float tpf)") необходимо, чтобы этот объект создавался до создания методов, а сразу после создания класса. В итоге наш код будет выглядеть так:
public class Main extends SimpleApplication { Geometry g; public static void main(String[] args) { Main app = new Main(); app.start();
}
public void simpleInitApp() { flyCam.setEnabled(false); Box b = new Box(Vector3f.ZERO, 1,1,1); g = new Geometry("box", b); Material m = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md"); m.setColor("Color", ColorRGBA.White); g.setMaterial(m); rootNode.attachChild(g); }
public void simpleUpdate(float tpf) {
}
}
Теперь можно с геометрией "g" взаимодействовать из другого метода. Пусть наш кубик вращается по оси Y, для этого в методе "public void simpleUpdate(float tpf)" пишем следующее:
Код
g.rotate(0, 1*tpf, 0);
Запускаем и видим результат. На этом первый урок закончен.
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:
Игровые объявления и предложения:
Если вас заинтересовал материал «Урок по JMonkeyEngine №1 - Вводный», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела.
Предлагаются такие схожие материалы:
Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.