ping
JGO Visitor
Java games rock!
|
 |
«
Posted
2004-04-09 09:38:53 » |
|
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){} }
|