Am creating this game and somehow the game is not running smooth. Can anyone help me with this plz…
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Fighter extends JApplet implements Runnable,KeyListener
{
Thread runner;
Image buffer;
Graphics gf;
int x=400;
int y=400;
int skudXStart1=0;
int skudYStart1=0;
int skudXSlut1=0;
int skudYSlut1=0;
int skudXStart2=0;
int skudYStart2=0;
int skudXSlut2=0;
int skudYSlut2=0;
boolean right,left,space;
public void init()
{
addKeyListener(this);
setSize(800,600);
}
public void start()
{
if (runner == null)
{
runner = new Thread(this);
runner.start();
}
}
public void stop()
{
if(runner != null)
{
runner = null;
}
}
public void run()
{
while(gf==null)
{
try {
Thread.currentThread().sleep(50);
} catch(InterruptedException e){}
}
while(Thread.currentThread()==runner)
{
repaint();
gf.setColor(Color.white);
gf.fillRect(0, 0, 800, 600);
gf.drawImage((new ImageIcon("raptorSmall.gif")).getImage(),x,y,this);
gf.setColor(Color.red);
gf.drawLine(skudXStart1,skudYStart1,skudXSlut1,skudYSlut1);
gf.drawLine(skudXStart2,skudYStart2,skudXSlut2,skudYSlut2);
if (space)
{
skudYStart1-=50;
skudYSlut1-=50;
skudYStart2-=50;
skudYSlut2-=50;
if (skudYStart1 <= 0)
{
space = false;
}
}
if (left)
{
x -= 10;
}
if (right)
{
x += 10;
}
try {
Thread.currentThread().sleep(50);
} catch(InterruptedException e) {}
}
}
public void paint(Graphics g)
{
update(g);
}
public void update(Graphics g)
{
if (gf == null)
{
buffer = createImage(800, 600);
gf = buffer.getGraphics();
}
g.drawImage(buffer, 0, 0, this);
}
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode() == KeyEvent.VK_ESCAPE )
{
System.exit(0);
}
if(e.getKeyCode() == KeyEvent.VK_LEFT)
{
left=true;
}
if(e.getKeyCode() == KeyEvent.VK_RIGHT)
{
right=true;
}
if(e.getKeyCode() == KeyEvent.VK_SPACE)
{
if (skudYStart1 <= 0)
{
skudXStart1=x+20;
skudYStart1=y+30;
skudXSlut1=x+20;
skudYSlut1=450;
skudXStart2=x+78;
skudYStart2=y+30;
skudXSlut2=x+78;
skudYSlut2=450;
}
space=true;
}
}
public void keyReleased(KeyEvent e)
{
if(e.getKeyCode() == KeyEvent.VK_LEFT)
{
left=false;
}
if(e.getKeyCode() == KeyEvent.VK_RIGHT)
{
right=false;
}
if(e.getKeyCode() == KeyEvent.VK_SPACE)
{
}
}
public void keyTyped(KeyEvent e){}
}