Так что я только начинаю с 3D-части LIBGDX. Я загрузил последнюю ночную сборку, и когда я последовал за учебником, я получил исключение nullPointerException в строке (что будет отмечено в коде). На линии есть nullPointer - это кодLIBGDX 3D не работает
modelBatch.render(instance);
Все значения для этой строки есть. Экземпляр имеет все свои свойства и почти все остальное в моем коде. Любые идеи, почему я получаю исключение nullPointerException? Заранее спасибо.
import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.GL10;
import com.badlogic.gdx.graphics.PerspectiveCamera;
import com.badlogic.gdx.graphics.VertexAttributes.Usage;
import com.badlogic.gdx.graphics.g3d.Model;
import com.badlogic.gdx.graphics.g3d.ModelBatch;
import com.badlogic.gdx.graphics.g3d.ModelInstance;
import com.badlogic.gdx.graphics.g3d.materials.ColorAttribute;
import com.badlogic.gdx.graphics.g3d.materials.Material;
import com.badlogic.gdx.graphics.g3d.utils.ModelBuilder;
public class threeDTest implements ApplicationListener {
public PerspectiveCamera camera;
public ModelBatch modelBatch;
public Model model;
public ModelInstance instance;
@Override
public void create() {
camera = new PerspectiveCamera(67, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
camera.position.set(10f, 10f, 10f);
camera.lookAt(0, 0, 0);
camera.near = 0.1f;
camera.far = 300f;
camera.update();
ModelBuilder modelBuilder = new ModelBuilder();
model = modelBuilder.createBox(5f, 5f, 5f,
new Material(ColorAttribute.createDiffuse(Color.GREEN)),
Usage.Position | Usage.Normal);
instance = new ModelInstance(model);
}
@Override
public void resize(int width, int height) {
}
@Override
public void render() {
Gdx.gl.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
modelBatch.begin(camera);//Begin Rendering
modelBatch.render(instance);<--Null Pointer on this line
modelBatch.end();//End Rendering
}
@Override
public void pause() {
}
@Override
public void resume() {
}
@Override
public void dispose() {
model.dispose();
}
}