I just started learning JBox2d and am getting used to its’ code. I’m pretty sure I set up the OpenGL correctly, but I’m getting these errors:
Exception in thread "main" java.lang.NullPointerException
at ludumdare.BasicGravity.initObjects(BasicGravity.java:77)
at ludumdare.BasicGravity.<init>(BasicGravity.java:25)
at ludumdare.BasicGravity.main(BasicGravity.java:98)
Code(Single class) :
import static org.lwjgl.opengl.GL11.*;
import org.jbox2d.dynamics.BodyType;
import org.jbox2d.collision.shapes.CircleShape;
import org.jbox2d.common.Vec2;
import org.jbox2d.dynamics.Body;
import org.jbox2d.dynamics.BodyDef;
import org.jbox2d.dynamics.FixtureDef;
import org.jbox2d.dynamics.World;
import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
public class BasicGravity {
private World world;
public BasicGravity() throws LWJGLException {
setUpDisplay();
setUpWorld();
initGL();
initObjects();
render();
}
private void render() {
while (!Display.isCloseRequested()) {
glMatrixMode(GL_MODELVIEW);
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
Display.update();
Display.sync(30);
}
Display.destroy();
System.exit(0);
}
private void initGL() {
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, Display.getWidth(), 0, Display.getHeight(), -1, 1);
glMatrixMode(GL_MODELVIEW);
}
private void setUpWorld() {
Vec2 gravity = new Vec2(0.0f, -10.0f);
boolean doSleep = true;
World world = new World(gravity);
}
private void initObjects() {
BodyDef bf = new BodyDef();
bf.position.set(100, 100);
bf.type = BodyType.DYNAMIC;
CircleShape cs = new CircleShape();
cs.m_radius = 0.5f;
FixtureDef fd = new FixtureDef();
fd.shape = cs;
fd.density = 0.5f;
fd.friction = 0.3f;
fd.restitution = 0.5f;
Body body = world.createBody(bf);
body.createFixture(fd);
}
private static void setUpDisplay() {
try {
Display.setDisplayMode(new DisplayMode(1000, 700));
Display.setTitle("Graity");
Display.create();
} catch (LWJGLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
try {
new BasicGravity();
} catch (LWJGLException e) {}
}
}
I’m pretty sure I just need to add more JBox2d code, hope you can help.