Докуметация Cтарт Статьи Форум Лента Вход
Не официальное русскоязычное сообщество
Главная
    Документация jMonkeyEngine
        jMonkeyEngine Уроки и Документация
            Вклады
                Кубы - Структура Блочного Мира
                    Постройте свой блочный мир

Постройте свой блочный мир

Опубликованно: 25.06.2017, 19:51
Последняя редакция, Andry: 25.06.2017 20:05

Теперь вы настроили разных типов блоков, и мы готовы строить какие-нибудь крутые штуки в нашем мире. :)

Пример использования

Вместо того, чтобы объяснять каждый метод фреймворка, вот показательный пример, который должен объяснить использование:

//Это ваш ландшафт, он содержит весь
//блочный мир и предлагает методы его модификации
BlockTerrainControl blockTerrain = new BlockTerrainControl(CubesTestAssets.getSettings(this), new Vector3Int(1, 1, 1));

//Чтобы установить блок, просто укажите местоположение и объект блока
//(Существующие блоки будут заменены)
blockTerrain.setBlock(new Vector3Int(0, 0, 0), CubesTestAssets.BLOCK_WOOD);
blockTerrain.setBlock(new Vector3Int(0, 0, 1), CubesTestAssets.BLOCK_WOOD);
blockTerrain.setBlock(new Vector3Int(1, 0, 0), CubesTestAssets.BLOCK_WOOD);
blockTerrain.setBlock(new Vector3Int(1, 0, 1), CubesTestAssets.BLOCK_STONE);
blockTerrain.setBlock(0, 0, 0, CubesTestAssets.BLOCK_GRASS); //Для ленивых пользователей :P

//Вы также можете разместить целые области блоков: setBlockArea(местоположение, размер, блок)
//(Указанный блок будет клонироваться каждый раз)
//Следующая строка будет устанавливать 3 блока друг на друга
//({1,1,1}, {1,2,3} и {1,3,1})
blockTerrain.setBlockArea(new Vector3Int(1, 1, 1), new Vector3Int(1, 3, 1), CubesTestAssets.BLOCK_STONE);

//Удаление блока работает аналогичным образом
blockTerrain.removeBlock(new Vector3Int(1, 2, 1));
blockTerrain.removeBlock(new Vector3Int(1, 3, 1));

//terrain - это jME-Control, вы можете добавить его
//в узел графа сцены, чтобы отобразить его
Node terrainNode = new Node();
terrainNode.addControl(blockTerrain);
rootNode.attachChild(terrainNode);

После запуска этих нескольких строк вы должны увидеть это

test_tutorial

Как вы видите, создание и управление собственным блочным миром просто займет несколько строк кода и не потребует каких-либо специальных знаний. :)

Мне нужна специальная физика и тени

BlockTerrainControl присоединяет мир к назначенному jME-узлу. Таким образом, вы можете указать поведение, подобное теням или даже физике, подобно тому, как вы осуществляете взаимодействие объектов друг с другом:

terrainNode.setShadowMode(ShadowMode.CastAndReceive);
terrainNode.addControl(new RigidBodyControl(0));
physicsSpace.addAll(terrainNode);

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

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

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