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

Простой Пример

Опубликованно: 25.06.2017, 20:15
Последняя редакция, Andry: 25.06.2017 20:15
package com.cubes.test;

import java.util.logging.Level;
import java.util.logging.Logger;
import com.jme3.app.SimpleApplication;
import com.jme3.math.Vector3f;
import com.jme3.scene.Node;
import com.jme3.system.AppSettings;
import com.cubes.*;

public class TestTutorial extends SimpleApplication{

    public static void main(String[] args){
        Logger.getLogger("").setLevel(Level.SEVERE);
        TestTutorial app = new TestTutorial();
        app.start();
    }

    public TestTutorial(){
        settings = new AppSettings(true);
        settings.setWidth(1280);
        settings.setHeight(720);
        settings.setTitle("Cubes Demo - Tutorial");
    }

    @Override
    public void simpleInitApp(){
        CubesTestAssets.registerBlocks();

        //Это ваш ландшафт, он содержит весь
        //блочный мир и предлагает методы его модификации
        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); //For the lazy users :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);

        cam.setLocation(new Vector3f(-10, 10, 16));
        cam.lookAtDirection(new Vector3f(1, -0.56f, -1), Vector3f.UNIT_Y);
        flyCam.setMoveSpeed(50);
    }
}
Этот код использует параметры тестирования, предлагаемые фреймворком. Вы можете заменить вызов CubesTestAssets.getSettings(this); Как описано здесь.
Этот код использует тестовые блоки, предлагаемые фреймворком. Вы можете заменить вызов CubesTestAssets.registerBlocks(); Как описано здесь.

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

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

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