2013-06-10 3 views
0

jmonkey에서는 처음으로 입문서를 보았습니다. 호기심에서 마우스 움직임에 관한 상자를 움직이고 있었고,이 새로운 장난감으로 노는 것에 관해서는 마우스 움직임을 사용하여 구를 움직이려고했습니다. 기능이 거의 같기 때문에 Box with Sphere를 교체했습니다.jmonkey sphere에서 런타임 오류가 발생 했습니까?

public void simpleInitApp() { 
    //Box b = new Box(Vector3f.ZERO, 1, 1, 1); //example 
    //Geometry geom = new Geometry("Box", b); //example 

    Sphere b = new Sphere(1,2,3, true,true);//(Vector3f.ZERO, 1, 1, 1); 
    Geometry geom = new Geometry("Sphere", b); 


    Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md"); 
    mat.setColor("Color", ColorRGBA.Blue); 
    geom.setMaterial(mat); 

    rootNode.attachChild(geom); 
} 

그러나 컴파일하지만, 그것이 내가 구체의 인스턴스를 만든 그 라인에 런타임 오류 다음 반환 작동하지 않습니다 이

java.lang.IllegalArgumentException: Negative capacity: -12 
    at java.nio.Buffer.<init>(Buffer.java:191) 
    at java.nio.ByteBuffer.<init>(ByteBuffer.java:276) 
    at java.nio.ByteBuffer.<init>(ByteBuffer.java:284) 
    at java.nio.MappedByteBuffer.<init>(MappedByteBuffer.java:89) 
    at java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:118) 
    at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:306) 
    at com.jme3.util.BufferUtils.createFloatBuffer(BufferUtils.java:831) 
    at com.jme3.util.BufferUtils.createVector3Buffer(BufferUtils.java:252) 
    at com.jme3.scene.shape.Sphere.setGeometryData(Sphere.java:150) 
    at com.jme3.scene.shape.Sphere.updateGeometry(Sphere.java:395) 
    at com.jme3.scene.shape.Sphere.<init>(Sphere.java:121) 
    at mygame.Main.simpleInitApp(Main.java:27) 
    at com.jme3.app.SimpleApplication.initialize(SimpleApplication.java:225) 
    at com.jme3.system.lwjgl.LwjglAbstractDisplay.initInThread(LwjglAbstractDisplay.java:130) 
    at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:207) 
    at java.lang.Thread.run(Thread.java:722) 

Jun 11, 2013 12:10:31 AM com.jme3.renderer.lwjgl.LwjglRenderer cleanup 
INFO: Deleting objects and invalidating state 
Jun 11, 2013 12:10:31 AM com.jme3.input.lwjgl.LwjglMouseInput destroy 
INFO: Mouse destroyed. 
Jun 11, 2013 12:10:31 AM com.jme3.input.lwjgl.LwjglKeyInput destroy 
INFO: Keyboard destroyed. 
Jun 11, 2013 12:10:31 AM com.jme3.system.lwjgl.LwjglAbstractDisplay deinitInThread 
INFO: Display destroyed. 

이 무엇을

을 수행 할 수 있습니다 ?

답변

1

구체를 선언 할 때 : Sphere b = new Sphere(1,2,3, true,true);, 처음 두 매개 변수는 zSamples 수와 radialSamples 수를 나타냅니다. 가장자리가 3보다 작은 폴리곤을 만들 수 없으므로이 값은 3 이상이어야합니다. 샘플 수가 많을수록 구의 정밀도가 좋습니다.

당신은 시도 할 경우 :

Sphere b = new Sphere(30,30,1, true,true); 

당신이 원하는 결과를 얻을 수 있습니다.