Am creating a 2D spaceship shooter but am having this problem with my spaceship flickering like hell. How can I solve this?
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Raptor extends JFrame implements KeyListener
{
Graphics2D g;
JLabel raptorL;
Thread loop;
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;
int enemy1x=600;
int enemy1y=-100;
Raptor()
{
addKeyListener(this);
setBounds(100,50,800,600);
setVisible(true);
}
public void paint(Graphics g1)
{
super.paint(g1);
g = (Graphics2D) g1;
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g.drawImage((new ImageIcon("raptorSmall.gif")).getImage(),x,y,this);
g.setColor(Color.red);
g.drawLine(skudXStart1,skudYStart1,skudXSlut1,skudYSlut1);
g.drawLine(skudXStart2,skudYStart2,skudXSlut2,skudYSlut2);
g.drawImage((new ImageIcon("Enemy1.gif")).getImage(),enemy1x,enemy1y,this);
loop = new Thread(new Runnable()
{
public void run()
{
if(right)
{
x+=1;
}
if(left)
{
x-=1;
}
if(space)
{
skudYStart1-=5;
skudYSlut1-=5;
skudYStart2-=5;
skudYSlut2-=5;
}
try{
Thread.sleep(5000);
}catch(InterruptedException a){System.out.println(a);}
enemy1x-=1;
enemy1y+=1;
}
});
loop.start();
repaint();
}
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode() == KeyEvent.VK_LEFT)
{
left=true;
}
if(e.getKeyCode() == KeyEvent.VK_RIGHT)
{
right=true;
}
if(e.getKeyCode() == KeyEvent.VK_SPACE && skudYStart1 <= 0)
{
//System.out.println(skudYStart1);
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)
{
//space=false;
//loop=null;
}
}
public void keyTyped(KeyEvent e){}
public static void main(String[] aslan)
{
new Raptor();
}
}