hi,
I’m trying to setup a basic gameloop.
it runs but animation isn’t smooth ( lots of flicker ).
as a personalJava application it must be compatible with jdk 1.1
what’s wrong with this code?
can you help me? thanks.
eml
import java.awt.;
import java.awt.event.;
//-----------------------Engine-------------------------------------------------
public class Engine extends Frame implements ActionListener {
public LevelOne levOne;
public static void main (String[] args) {
Engine engine = new Engine();
}
public Engine() {
levOne = new LevelOne();
levOne.setSize(300, 300);
add(“Center”, levOne);
addWindowListener(new winExit());
setLayout ( new FlowLayout());
setSize( 300, 300);
this.setBackground(levOne.black);
show();
}
public void actionPerformed(ActionEvent e)
{
dispatchEvent( new WindowEvent( this, WindowEvent.WINDOW_CLOSING));
}
}
//----------------------------winExit-------------------------------------------
class winExit extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
//--------------------------LevelOne--------------------------------------------
class LevelOne extends Canvas implements MouseMotionListener, Runnable {
Thread t;
Image offscreenImage;
Graphics offscreenGraphics;
Color black = new Color(0, 0, 0);
Image background1, sprite1;
Toolkit toolkit = Toolkit.getDefaultToolkit();
int posX = 50, posY = 50;
LevelOne(){
background1 = toolkit.getImage(“bacground.jpg”);
sprite1 = toolkit.getImage(“sprite.gif”);
t = new Thread(this, “LevelOne”);
t.start();
}
public void run(){
for ( ;; ) {
try {
posY++;
if (posY > 300) posY = 0;
t.sleep(16);
repaint();
} catch (InterruptedException e) {}
}
}
public void paint(Graphics g) {
if(offscreenImage==null) {
// set up a simple double buffer
offscreenImage = createImage(this.size().width, this.size().height);
offscreenGraphics = offscreenImage.getGraphics();
}
offscreenGraphics.drawImage(background1, 0, 0, this);
offscreenGraphics.drawImage(sprite1, posX, posY, this);
g.drawImage(offscreenImage, 0, 0, this);
}
public void mouseMoved(MouseEvent e){}
public void mouseDragged(MouseEvent e){}
}