好的,这是我的代码:
package test;
import java.util.ArrayList;
import java.util.Vector;
import com.jme3.app.SimpleApplication;
import com.jme3.system.AppSettings;
import com.jme3.material.Material;
import com.jme3.math.Vector3f;
import com.jme3.scene.Geometry;
import com.jme3.scene.shape.Box;
import com.jme3.math.ColorRGBA;
import com.jme3.scene.Node;
public class test extends SimpleApplication {
public static void main(String[] args){
AppSettings settings = new AppSettings(false);
settings.setResolution(640,480);
test app = new test();
app.setSettings(settings);
app.start();
}
@Override
public void simpleInitApp() {
ArrayList<Geometry> geos = new ArrayList<Geometry>();
for ( int count = 0; count <= 5; count++ ) {
double x = 10;
double y = 10;
double z = 10;
Box box = new Box( new Vector3f(count*10,count*10,count*10), (int)x, (int)y, (int)z );
Geometry geo = new Geometry( "Box", box );
Material mat = new Material( assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
mat.setColor( "Color", ColorRGBA.Blue );
geo.setMaterial(mat);
geos.add( geo );
}
/** Create a pivot node at (0,0,0) and attach it to the root node */
Node pivot = new Node("pivot");
rootNode.attachChild(pivot); // put this node in the scene
/** Attach the two boxes to the *pivot* node. */
for( Geometry g : geos ) {
pivot.attachChild( g );
}
/** Rotate the pivot node: Note that both boxes have rotated! */
pivot.rotate(.4f,.4f,0f);
}
}
app.start()命令出错,说明它是一个NULL指针异常。如果app之前的行没有错误,app怎么能成为空指针?我迷失了什么是错的。
历史:我需要能够为简单的盒子创建一个3D渲染。我需要从另一个过程加载模型元素,然后循环它们并绘制它们。我正在使用jMonkey,因为他们最初想要Xj3D,但我找不到如何让它运行。至少这个我可以让教程工作,但当我修改它循环并创建几个框现在我得到空指针问题。
提前致谢! JH
编辑:
这是控制台输出:
Exception in thread "main" java.lang.NullPointerException
at com.jme3.system.JmeDesktopSystem.showSettingsDialog(JmeDesktopSystem.java:73)
at com.jme3.system.JmeSystem.showSettingsDialog(JmeSystem.java:108)
at com.jme3.app.SimpleApplication.start(SimpleApplication.java:127)
at test.test.main(test.java:34)
答案 0 :(得分:0)
好的,改变
AppSettings settings = new AppSettings(false);
到
AppSettings settings = new AppSettings(true);
解决了我的问题。现在弄清楚为什么假的不起作用。
答案 1 :(得分:0)
False不会加载默认设置,这意味着您应该手动设置它们。这可能是NPE的原因。要隐藏设置对话框,请使用
app.setShowSettings(false);