Hello,
I'm changing my 2D java game to use lwjgl but I'm having troubles using it has an applet...
Bellow its my current lwjgl Code and my old applet Code... how can I create the applet?
Code:
public class Game implements Runnable {
public boolean running = false;
private Thread thread;
private Render render;
private static String title = "Larry";
public static int width = 1200;
public static int height = width / 16 * 9;
public static int scale = 1;
public Game() {
render = new Render();
}
private void init() {
try {
Display.setDisplayMode(new DisplayMode(width, height));
Display.setTitle(title);
Display.create();
} catch (LWJGLException e) {
e.printStackTrace();
}
glMatrixMode(GL_PROJECTION_MATRIX);
glOrtho(0, width, height, 0, 0, 1.0f);
glEnable(GL_TEXTURE_2D);
glEnable(GL_COLOR_MATERIAL);
//glEnable(GL_LIGHTING);
}
public void start() {
running = true;
thread = new Thread(this, "Display");
thread.start();
}
public void run() {
init();
long lastTime = System.nanoTime();
double ns = 1000000000.0 / 60.0;
double delta = 0;
long lastTimer = System.currentTimeMillis();
int frames = 0;
int updates = 0;
while (running) {
long now = System.nanoTime();
delta += (now - lastTime) / ns;
lastTime = now;
if (delta >= 1) {
update();
updates++;
delta--;
}
render();
frames++;
while (System.currentTimeMillis() - lastTimer > 1000) {
lastTimer += 1000;
System.out.println(updates + " ups, " + frames + " fps.");
updates = 0;
frames = 0;
}
check();
}
Display.destroy();
}
private void check() {
if (Display.isCloseRequested()) running = false;
}
int px = 200, py = 150;
int speed = 5;
int bspeed = 10;
boolean dir = false;
int bx = 0, by = 200;
private void update() {
if (Keyboard.isKeyDown(Keyboard.KEY_UP)) py -= speed;
if (Keyboard.isKeyDown(Keyboard.KEY_DOWN)) py += speed;
if (Keyboard.isKeyDown(Keyboard.KEY_LEFT)) px -= speed;
if (Keyboard.isKeyDown(Keyboard.KEY_RIGHT)) px += speed;
if (dir)
bx += bspeed;
else bx -= bspeed;
if (bx < 0) dir = true;
if (bx >= width - 20) dir = false;
}
private void render() {
int size = 20;
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
//glEnable(GL_LIGHT0);
//glLight(GL_LIGHT0, GL_INTENSITY, FloatUtils.asFloatBuffer(new float[]{10f, 10f, 10f, 10.0f}));
//glLight(GL_LIGHT0, GL_INTENSITY, GL_INTENSITY);
render.setColor(0.0f, 1.0f, 0.0f);
render.tile(px, py, size);
render.setColor(1.0f, 0.0f, 0.0f);
render.tile(bx, by, size);
Display.update();
}
}
Old java applet that I used before switch to lwjgl:
public class LarryApplet extends Applet {
private static final long serialVersionUID = 1L;
private Game display = new Game();
public void init() {
Game.debugging = false;
setLayout(new BorderLayout());
add(display);
requestFocus();
}
public void start(){
display.start();
}
public void stop(){
display.stop();
}
}
How can I change the old applet code to start the lwjgl?