Поиск объектов в J2ME M3G - PullRequest
       22

Поиск объектов в J2ME M3G

2 голосов
/ 14 апреля 2010

Я использую Blender для создания m3g-файлов, а затем загружаю их в Java-программу.
Как лучше всего найти объект (Mesh) в World? (Как мне «построить» мир?)

Должен ли я создавать отдельные классы для каждого объекта, а затем добавлять их к одному World объекту или назначать идентификаторы для объектов в Blender и находить их в программе по идентификатору? Или экспортировать каждый объект в отдельный файл M3G?
(Или как-то иначе?)

1 Ответ

1 голос
/ 21 апреля 2010

Q1. Если вам известен идентификатор Mesh (MESH_ID), то:

try {
  Object3D[] roots = Loader.load( "http://www.example.com/scene.m3g" );

  World world = roots[0];
  Mesh mesh = world.find( MESH_ID );
}
catch( Exception e ) {
  // Handle it
}

Q2. Загрузить базовый World:

public class MyCanvas extends Canvas
    Graphics3D g3d;
    World world;
    int currentTime = 0;

    public MyCanvas() {
        g3d = Graphics3D.create();
        Object root[] = Loader.load("world.m3g");
        world = root[0];
    }

    protected void paint(Graphics g) {
        g3d.bindTarget(g);
        world.animate(currentTime);
        currentTime += 50;
        g3d.render(world);
        g3d.releaseTarget();
    }
}

Затем используйте API для создания и добавления новых объектов в мир. Документация API подробно описывает это:

Q3. Назначьте их в Blender, затем используйте метод find, чтобы получить точный экземпляр Object3D, который вам нужен.

Q4. Если вы планируете повторно использовать сетки (для разных приложений), организуйте их в отдельные файлы, загружайте их отдельно во время инициализации приложения и затем вставляйте их в мир.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...