Essa é a parte três do guia, aqui você terá acesso a dois algoritmos apresentados nos tutoriais para iniciantes em jMonkey, no primeiro algoritmo você cria dois cubos de cores diferentes, muda suas posições e utiliza um nó raiz para transformar e anexar outros nós.
Código 01:
package jme3test.helloworld;
import com.jme3.app.SimpleApplication;
import com.jme3.material.Material;
import com.jme3.math.ColorRGBA;
import com.jme3.math.Vector3f;
import com.jme3.scene.Geometry;
import com.jme3.scene.Node;
import com.jme3.scene.shape.Box;
/* Como usar os nós para manipular objetos na cena.
* Você pode girar, traduzir e dimensionar objetos, manipulando seus nós.
* O nó raiz é especial: Somente o que está ligado ao nó raiz aparece na cena. */
public class HelloNode extends SimpleApplication {
public static void main(String[] args){
HelloNode app = new HelloNode();
app.start();
}
@Override
public void simpleInitApp() {
/** cria uma caixa azul nas coordenadas (1,-1,1) */
Box box1 = new Box(1,1,1);
Geometry blue = new Geometry("Box", box1);
blue.setLocalTranslation(new Vector3f(1,-1,1));
Material mat1 = new Material(assetManager,
"Common/MatDefs/Misc/Unshaded.j3md");
mat1.setColor("Color", ColorRGBA.Blue);
blue.setMaterial(mat1);
/** cria uma caixa vermelha reta, acima da azul (1,3,1) */
Box box2 = new Box(1,1,1);
Geometry red = new Geometry("Box", box2);
red.setLocalTranslation(new Vector3f(1,3,1));
Material mat2 = new Material(assetManager,
"Common/MatDefs/Misc/Unshaded.j3md");
mat2.setColor("Color", ColorRGBA.Red);
red.setMaterial(mat2);
/** Criar um nó dinâmico em (0,0,0) e o anexa ao nó raiz */
Node pivot = new Node("pivot");
rootNode.attachChild(pivot); // colocar este nó na cena
/** Prende as duas caixas para o nó *pivô*. (E momentaneamente ao nó raiz.) */
pivot.attachChild(blue);
pivot.attachChild(red);
/** Gira o nó dinâmico */
pivot.rotate(.4f,.4f,0f);
}
}
Código 02:
package jme3test.helloworld;
import com.jme3.app.SimpleApplication;
import com.jme3.font.BitmapText;
import com.jme3.light.DirectionalLight;
import com.jme3.material.Material;
import com.jme3.math.Vector3f;
import com.jme3.scene.Geometry;
import com.jme3.scene.Spatial;
import com.jme3.scene.shape.Box;
/** Como carregar um modelo OBJ, e OgreXML, um material/textura, ou texto. */
public class HelloAssets extends SimpleApplication {
public static void main(String[] args) {
HelloAssets app = new HelloAssets();
app.start();
}
@Override
public void simpleInitApp() {
// Importando um modelo 3D (.obj) de um determinado caminho
Spatial teapot = assetManager.loadModel("Models/Teapot/Teapot.obj");
Material mat_default = new Material(
assetManager, "Common/MatDefs/Misc/ShowNormals.j3md");
teapot.setMaterial(mat_default);
rootNode.attachChild(teapot);
// Criar uma parede com uma textura simples de test_data
Box box = new Box(2.5f,2.5f,1.0f);
Spatial wall = new Geometry("Box", box );
Material mat_brick = new Material(
assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
mat_brick.setTexture("ColorMap", assetManager.loadTexture("Textures/Terrain/BrickWall/BrickWall.jpg"));
wall.setMaterial(mat_brick);
wall.setLocalTranslation(2.0f,-2.5f,0.0f);
rootNode.attachChild(wall);
// Exibir uma linha de texto com uma fonte padrão
guiNode.detachAllChildren();
guiFont = assetManager.loadFont("Interface/Fonts/Default.fnt");
BitmapText helloText = new BitmapText(guiFont, false);
helloText.setSize(guiFont.getCharSet().getRenderedSize());
helloText.setText("Eu Sou a CarolHCS");
helloText.setLocalTranslation(300, helloText.getLineHeight(), 0);
guiNode.attachChild(helloText);
// Carrega o modelo de test_data (OgreXML + material + textura)
Spatial ninja = assetManager.loadModel("Models/Ninja/Ninja.mesh.xml");
ninja.scale(0.05f, 0.05f, 0.05f);
ninja.rotate(0.0f, -3.0f, 0.0f);
ninja.setLocalTranslation(0.0f, -5.0f, -2.0f);
rootNode.attachChild(ninja);
// Você deve adicionar uma luz para tornar o modelo visível
DirectionalLight sun = new DirectionalLight();
sun.setDirection(new Vector3f(-0.1f, -0.7f, -1.0f));
rootNode.addLight(sun);
}
}
Para o segundo código é necessário utilizar o arquivo jme3-test-data.jar, para adiciona-lo clique com o botão direito em seu projeto, escolha "Propriedades" ("Properties"), vá para "Bibliotecas" ("Libraries"), pressione "Adicionar Biblioteca" ("Add Library") e adiciona a biblioteca pré-configurada "jme3-test-data" library.
Referências para saber mais:
Nenhum comentário:
Postar um comentário