2012-06-06 28 views
0

好吧,这里是我的代码:我的jMonkey Sligly修改教程莫名其妙有一个空指针的问题?

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()命令,应该说它是一个空指针异常包含错误。当它之前的行没有错误时,应用程序如何能成为空指针?我失去了什么是错的。

历史:我需要能够创建一个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

什么是您的堆栈跟踪?这可能是因为某些东西被设置为null,并且只在启动应用程序时才被调用,这就是为什么您会在该行中看到它而不是应用程序本身为空的原因。 – n00begon

+0

这是你的意思吗?如果不是,我怎么得到它? –

+0

所以它看起来像实际的空指针在'JmeDesktopSystem.showSettingsDialog'上。您修改的教程是否工作?如果是的话,你是否删除了关于设置对话框的一行? – n00begon

回答

0

好吧,改变

AppSettings settings = new AppSettings(false); 

AppSettings settings = new AppSettings(true); 

固定我的问题。现在弄清楚为什么错误不起作用。

+0

你有没有看过那个页面?:http://hub.jmonkeyengine.org/javadoc/,甚至可能是那个:https://code.google.com/p/jmonkeyengine/source/browse/trunk/engine/ src/core/com/jme3/system/AppSettings.java?r = 10615别忘了,你拥有Java开源的力量! – noncom

0

False不会加载默认设置,这意味着您应该手动设置它们全部。这可能是NPE的原因。要隐藏设置对话框,请使用

app.setShowSettings(false); 
相关问题