0

わかりました、ここに私のコードがあります:

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 ポインター例外であることを示すエラーが発生します。前の行がエラーにならない場合、アプリはどのようにnullポインタになることができますか? 何が悪いのか途方に暮れています。

歴史: シンプルなボックスの仕事のために 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)
4

2 に答える 2

0

OK、変更します

AppSettings settings = new AppSettings(false);

AppSettings settings = new AppSettings(true);

私の問題を修正しました。ここで、falseが機能しなかった理由を理解します。

于 2012-06-06T02:42:24.000 に答える
0

False はデフォルト設定をロードしません。つまり、すべて手動で設定する必要があります。これがおそらく NPE の理由です。設定ダイアログを非表示にするには、次を使用します

app.setShowSettings(false);
于 2012-06-27T09:28:54.020 に答える