Java 如何阻止repaint()方法闪烁

Java 如何阻止repaint()方法闪烁,java,image,applet,awt,repaint,Java,Image,Applet,Awt,Repaint,基本上,当屏幕刷新时,它会闪烁白色,然后一秒钟后,它会再次闪烁。我在mac电脑上工作,在eclipse上屏幕不会闪烁,但当我把它放入小程序时,它就开始闪烁 import java.awt.event.*; import java.applet.Applet; import java.applet.AudioClip; import java.awt.*; import java.net.URL; import java.io.*; import java.net.*; import javax

基本上,当屏幕刷新时,它会闪烁白色,然后一秒钟后,它会再次闪烁。我在mac电脑上工作,在eclipse上屏幕不会闪烁,但当我把它放入小程序时,它就开始闪烁

import java.awt.event.*;
import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.*;
import java.net.URL;
import java.io.*; 
import java.net.*;
import javax.swing.*;
import javax.swing.event.*;     //Copyright MRE Dev
//Anyone that steals this code will be prostituted
public class RadicalRacingApplet extends Applet implements KeyListener {
final int WIDTH = 900, HEIGHT = 650;
double p1Speed = 0;
double p2Speed = 0;
double bullet1Speed = 7;
double bullet2Speed = 7;
final int UP = 0, RIGHT = 1, DOWN = 2, LEFT = 3;
int p1Direction = 1;
int p2Direction = 1;
int counterp1 = 0;
int counterp2 = 0;
int scoreN = 0;
int bullets = 0;
int p1Deaths = 0;
int p2Deaths = 0;
final int shoot = 1;
final int shootOther = 3;
final int shoot2 = 1;
final int shoot2Other = 3;
final int normal = 1;
final int big = 3;
final int normal2 = 1;
final int big2 = 3;
int bullets2 = 0;
int bigBullets = 0;
int bigBullets2 = 0;
String scoreS = " ";

URL eng = this.getClass().getResource ("hit.wav");
AudioClip snd = JApplet.newAudioClip(eng);




Rectangle p1 = new Rectangle(135,220,30,30);
Rectangle p2 = new Rectangle(700,300,30,30);
//Obstacles
Rectangle ob1 = new Rectangle(475,75,50,600);
Rectangle bullets1 = new Rectangle(0,0,10,5);
Rectangle bullets2Rect = new Rectangle(0,0,10,5);
Rectangle powerUp1 = new Rectangle(475,680,50,50);
Rectangle bigBullet = new Rectangle(200,600,50,50);
Rectangle bigBullet2 =  new Rectangle(800,600,50,50);


public void init() {



    Move1 m1 = new Move1();
    m1.start();
    Bullets1 b1 = new Bullets1();
    b1.start();
    Move2 m2 = new Move2();
    m2.start();
    Bullets2 b2 = new Bullets2();
    b2.start();
    PowerUps p1 = new PowerUps();
    p1.start();
    BigBullet1 bg1 = new BigBullet1();
    bg1.start();
    BigBullet2 bg2 = new BigBullet2();
    bg2.start();

    snd.loop();


}

public void paint(Graphics g) {
    super.paint(g);
    super.repaint();
    g.setColor(Color.blue);
    g.fillRect(0,0,1000,750);
    g.setColor(Color.WHITE);
    g.setFont(new Font("Arial",Font.PLAIN,16));




    g.setColor(Color.BLACK);


    g.fillRect(ob1.x, ob1.y, ob1.width, ob1.height);
    g.setColor(Color.WHITE);
    g.drawString(scoreS, 100, 100);

    g.fill3DRect(powerUp1.x, powerUp1.y, powerUp1.width, powerUp1.height, true);
    g.fill3DRect(bigBullet.x, bigBullet.y, bigBullet.width, bigBullet.height,true);
    g.fill3DRect(bigBullet2.x, bigBullet2.y, bigBullet2.width, bigBullet2.height, true);
    g.setColor(Color.YELLOW);
    g.setFont(new Font("Arial",Font.BOLD,30));
    g.drawString("P1 Deaths " + p1Deaths, 200, 50);
    g.drawString("P2 Deaths" + p2Deaths, 400, 50);


    Image img1;
    Image img2;
    Image img3;
    Image img4;
    Image img5;
    Image img6;
    Image img7;
    Image img8;
    try{
        URL url = this.getClass().getResource("p1.png");
        URL url2 = this.getClass().getResource("p1Right.png");
        URL url3 = this.getClass().getResource("p1Left.png");
        URL url4 = this.getClass().getResource("p1Down.png");
        URL url5 = this.getClass().getResource("bullet.png");
        URL url6 = this.getClass().getResource("bullet2.png");
        URL url7 = this.getClass().getResource("bigBullet.png");
        URL url8 = this.getClass().getResource("bigBullet2.png");
        img1 = Toolkit.getDefaultToolkit().getImage(url);
        img2 = Toolkit.getDefaultToolkit().getImage(url2);
        img3 = Toolkit.getDefaultToolkit().getImage(url3);
        img4 = Toolkit.getDefaultToolkit().getImage(url4);
        img5 = Toolkit.getDefaultToolkit().getImage(url5);
        img6 = Toolkit.getDefaultToolkit().getImage(url6);
        img7 = Toolkit.getDefaultToolkit().getImage(url7);
        img8 = Toolkit.getDefaultToolkit().getImage(url8);

    if(p1Direction == UP)  {
        g.drawImage(img1, p1.x, p1.y, this);
    }
    if(p1Direction == RIGHT)  {
        g.drawImage(img2, p1.x, p1.y, this);
    }
    if(p1Direction == LEFT) {
        g.drawImage(img3, p1.x, p1.y, this);
    }
    if(p1Direction == DOWN)  {
        g.drawImage(img4, p1.x, p1.y, this);
    }

    if(p2Direction == UP)  {
        g.drawImage(img1, p2.x, p2.y, this);
    }
    if(p2Direction == RIGHT)  {
        g.drawImage(img2, p2.x, p2.y, this);
    }
    if(p2Direction == LEFT) {
        g.drawImage(img3, p2.x, p2.y, this);
    }
    if(p2Direction == DOWN)  {
        g.drawImage(img4, p2.x, p2.y, this);
    }
    if(bullets == shoot)  {
        g.drawImage(img5, bullets1.x, bullets1.y, this);
    }
    if(bullets == shootOther)  {
        g.drawImage(img6, bullets1.x, bullets1.y, this);
    }
    if(bullets2 == shoot2)  {
        g.drawImage(img6, bullets2Rect.x, bullets2Rect.y, this);
    }
    if(bullets2 == shoot2Other)  {
        g.drawImage(img5, bullets2Rect.x, bullets2Rect.y, this);
    }
    if((bigBullets == big) && (bullets == shoot))  {
        g.drawImage(img7,bullets1.x, bullets1.y, this);
    }
    if((bigBullets2 == big2) && (bullets2 == shoot2Other)) {
        g.drawImage(img7, bullets2Rect.x, bullets2Rect.y, this);
    }
    if((bigBullets2 == big2) && (bullets2 == shoot2))  {
        g.drawImage(img8, bullets2Rect.x, bullets2Rect.y, this);
    }
    if((bigBullets == big) && (bullets == shootOther))  {
        g.drawImage(img8, bullets1.x, bullets1.y, this);
    }
    }
    catch(Exception e)  {
        System.out.println("The images dont work");
    }
}

public class Move1 extends Thread implements KeyListener {
    public void run() {
        addKeyListener(this);
        while(true) {
            try {



                if(p1.intersects(ob1))  {
                    p1.x = 135;
                    p1.y = 220;
                    p1Deaths++;
                }

                if(p1.intersects(p2))  {
                    p1.x = 135;
                    p1.y = 220;
                    p1Deaths++;
                }


                if(p1.x >1000)  {
                    p1.x = 0;
                }
                if(p1.y > 750)  {
                    p1.y = 0;
                }
                if(p1.x <0)  {
                    p1.x = 1000;
                }
                if(p1.y < 0)  {
                    p1.y = 750;
                }

                if(p1Direction == UP) {

                    p1.y-=(int)p1Speed;
                    if(p1Speed <=3)  {
                        p1Speed+=.2;


                    }

                }

                if(p1Direction == DOWN) {

                    p1.y+=(int)p1Speed;
                    if(p1Speed <=3)  {
                        p1Speed+=.2;

                    }
                }
                if(p1Direction == LEFT) {
                    p1.x-=(int)p1Speed;
                    if(p1Speed <=3)  {
                        p1Speed+=.2;

                    }
                }
                if(p1Direction == RIGHT) {
                    p1.x+=(int)p1Speed;
                    if(p1Speed <=3)  {
                        p1Speed+=.2;

                    }
                }

                Thread.sleep(35);

            }
            catch(Exception e) {
                break;
            }
        }

    }

public void keyPressed(KeyEvent event) {}
public void keyReleased(KeyEvent event) {}
public void keyTyped(KeyEvent event) {
    if(event.getKeyChar() == 'a') {
        p1Direction = LEFT;
    }
    if(event.getKeyChar() == 's') {
        p1Direction = DOWN;
    }
    if(event.getKeyChar() == 'd') {
        p1Direction = RIGHT;
    }
    if(event.getKeyChar() == 'w') {
        p1Direction = UP;
    }

}

}
public class Move2 extends Thread implements KeyListener {
    public void run() {
        addKeyListener(this);
        while(true) {
            try {


                if(p2.intersects(ob1))  {
                    p2.x = 700;
                    p2.y = 300;
                    p2Deaths++;
                }

                if(p2.intersects(p1))  {
                    p2.x = 700;
                    p2.y = 300;
                    p2Deaths++;
                }

                if(p2.x >1000)  {
                    p2.x = 0;
                }
                if(p2.y > 750)  {
                    p2.y = 0;
                }
                if(p2.x <0)  {
                    p2.x = 1000;
                }
                if(p2.y < 0)  {
                    p2.y = 750;
                }
                if(p2Direction == UP) {

                    p2.y-=(int)p2Speed;
                    if(p2Speed <=3)  {
                        p2Speed+=.2;


                    }

                }

                if(p2Direction == DOWN) {

                    p2.y+=(int)p2Speed;
                    if(p2Speed <=3)  {
                        p2Speed+=.2;

                    }
                }
                if(p2Direction == LEFT) {
                    p2.x-=(int)p2Speed;
                    if(p2Speed <=3)  {
                        p2Speed+=.2;

                    }
                }
                if(p2Direction == RIGHT) {
                    p2.x+=(int)p2Speed;
                    if(p2Speed <=3)  {
                        p2Speed+=.2;

                    }
                }


                Thread.sleep(35);

            }
            catch(Exception e) {
                break;
            }
        }

    }

public void keyPressed(KeyEvent event) {}
public void keyReleased(KeyEvent event) {}
public void keyTyped(KeyEvent event) {
    if(event.getKeyChar() == 'j') {
        p2Direction = LEFT;
    }
    if(event.getKeyChar() == 'k') {
        p2Direction = DOWN;
    }
    if(event.getKeyChar() == 'l') {
        p2Direction = RIGHT;
    }
    if(event.getKeyChar() == 'i') {
        p2Direction = UP;
    }

}

}
public class Bullets1 extends Thread implements KeyListener{
    public void run()  {
        addKeyListener(this);
        while(true)  {
            try {

                if(bullets1.intersects(p2))  {
                    p2.x = 700;
                    p2.y = 300;
                    p2Deaths++;
                }
                if(bullets1.x > 1000)  {
                    bullet1Speed = 7;
                    bullets = 0;
                    bullets1.x = 0;
                    bullets1.y = 0;
                }
                if(bullets1.x < 0)  {
                    bullet1Speed = 7;
                    bullets = 0;
                    bullets1.x = 0;
                    bullets1.y = 0;
                }
                double p1X = p1.getX();
                double p1Y = p1.getY();
                if(bullets == shoot)  {
                    bullets1.x = (int)p1X;
                    bullets1.y = (int)p1Y;
                    if(bullet1Speed >= 5) {
                        bullet1Speed+=5;


                    }
                    bullets1.x+=(int)bullet1Speed;

                }
                if(bullets == shootOther)  {
                    bullets1.x = (int)p1X;
                    bullets1.y = (int)p1Y;
                    if(bullet1Speed >=5)  {
                        bullet1Speed+=5;
                    }
                    bullets1.x-=(int)bullet1Speed;
                }




                Thread.sleep(20);

            }
            catch(Exception e)  {
                break;
            }
        }
    }


    public void keyPressed(KeyEvent event) {
        if(event.getKeyChar() == 'e') {
            bullets = shoot;
        }
        if(event.getKeyChar() == 'q')  {
            bullets = shootOther;
        }



    }

    @Override
    public void keyReleased(KeyEvent event) {
        // TODO Auto-generated method stub

    }

    @Override
    public void keyTyped(KeyEvent event) {
        // TODO Auto-generated method stub

    }
}

public class Bullets2 extends Thread implements KeyListener{
    public void run()  {
        addKeyListener(this);
        while(true)  {
            try {

                if(bullets2Rect.intersects(p1))  {
                    p1.x = 135;
                    p1.y = 300;
                    p1Deaths++;
                }
                if(bullets2Rect.x < 0)  {
                    bullet2Speed = 7;
                    bullets2 = 0;
                    bullets2Rect.x = 0;
                    bullets2Rect.y = 0;
                }
                if(bullets2Rect.x > 1000)  {
                    bullet2Speed = 7;
                    bullets2 = 0;
                    bullets2Rect.x = 0;
                    bullets2Rect.y = 0;
                }
                double p2X = p2.getX();
                double p2Y = p2.getY();
                if(bullets2 == shoot2)  {
                    bullets2Rect.x = (int)p2X;
                    bullets2Rect.y = (int)p2Y;
                    if(bullet2Speed >= 5) {
                        bullet2Speed+=5;


                    }
                    bullets2Rect.x-=(int)bullet2Speed;

                }
                if(bullets2 == shoot2Other)  {
                    bullets2Rect.x = (int)p2X;
                    bullets2Rect.y = (int)p2Y;
                    if(bullet2Speed >=5)  {
                        bullet2Speed+=5;
                    }
                    bullets2Rect.x+=(int)bullet2Speed;
                }


                Thread.sleep(20);

            }
            catch(Exception e)  {
                break;
            }
        }
    }


    public void keyPressed(KeyEvent event) {
        if(event.getKeyChar() == 'u') {
            bullets2 = shoot2;
        }
        if(event.getKeyChar() == 'o')  {
            bullets2 = shoot2Other;
        }


    }

    @Override
    public void keyReleased(KeyEvent event) {
        // TODO Auto-generated method stub

    }

    @Override
    public void keyTyped(KeyEvent event) {
        // TODO Auto-generated method stub

    }
}

public class PowerUps extends Thread implements KeyListener  {
    public void run()  {

        addKeyListener(this);
        while(true) {
            try {

                int countPower = 0;
                int countPower2 = 0;
                if(p1.intersects(powerUp1))  {
                    powerUp1.setSize(0,0);
                    countPower = 1;
                }

                if(countPower == 1) {

                        p1Speed = 7;
                        Thread.sleep(10000);
                }
                if(countPower == 0)  {
                    p1Speed = 3;
                }
                if(p2.intersects(powerUp1))  {
                    powerUp1.setSize(0,0);

                    countPower2 = 1;
                }
                if(countPower2 == 1)  {
                    p2Speed = 7;
                    Thread.sleep(10000);

                }
                if(countPower == 0)  {
                        p2Speed = 3;
                    }

                Thread.sleep(35);
            }
            catch (Exception e) {
                break;
            }
        }
    }




    @Override
    public void keyPressed(KeyEvent arg0) {
        // TODO Auto-generated method stub

    }

    @Override
    public void keyReleased(KeyEvent arg0) {
        // TODO Auto-generated method stub

    }

    @Override
    public void keyTyped(KeyEvent arg0) {
        // TODO Auto-generated method stub

    }

}

public class BigBullet1 extends Thread {
    public void run()  {
        while(true)  {
            try {

                if(p1.intersects(bigBullet))  {
                    bigBullet.setSize(0,0);
                    bigBullets = big;
                    Thread.sleep(10000);
                    bigBullets = normal;
                }
                if(p2.intersects(bigBullet))  {
                    bigBullet.setSize(0,0);
                    bigBullets2 = big;
                    Thread.sleep(10000);
                    bigBullets2 = normal2;
                }
            }
            catch(Exception e)  {
                break;
            }
        }
    }
}

public class BigBullet2 extends Thread  {
    public void run()  {
        while(true)  {
            try {

                if(p2.intersects(bigBullet2))  {
                    bigBullet2.setSize(0,0);
                    bigBullets2 = big2;

                    Thread.sleep(10000);
                    bigBullets2 = normal2;

                }
                if(p1.intersects(bigBullet2))  {
                    bigBullet2.setSize(0,0);
                    bigBullets = big2;
                    bullets1.setSize(10,10);
                    Thread.sleep(10000);
                    bigBullets = normal2;
                }
            }
            catch(Exception e)  {
                break;
            }
        }
    }
}



@Override
public void keyPressed(KeyEvent event) {
    // TODO Auto-generated method stub

}

@Override
public void keyReleased(KeyEvent event) {
    // TODO Auto-generated method stub

}

@Override
public void keyTyped(KeyEvent event) {
    // TODO Auto-generated method stub

}
导入java.awt.event.*;
导入java.applet.applet;
导入java.applet.AudioClip;
导入java.awt.*;
导入java.net.URL;
导入java.io.*;
导入java.net。*;
导入javax.swing.*;
导入javax.swing.event.*//版权所有MRE-Dev
//任何窃取此密码的人都将被卖淫
公共类RadicalRacingApplet扩展小程序实现KeyListener{
最终内部宽度=900,高度=650;
双p1速度=0;
双倍速度=0;
双子弹1速度=7;
双子弹2速度=7;
最终整数向上=0,右=1,向下=2,左=3;
int p1方向=1;
int p2方向=1;
1=0;
int=2=0;
积分n=0;
int=0;
int=0;
int=0;
最终int射击=1;
最终结果:其他=3;
最终积分2=1;
最终int shoot2其他=3;
最终int正常值=1;
最终int大=3;
最终整数法线2=1;
最终int big2=3;
int bullets2=0;
int=0;
int-bigbarkets2=0;
字符串分数=”;
URL eng=this.getClass().getResource(“hit.wav”);
音频剪辑snd=JApplet.newAudioClip(英语);
矩形p1=新矩形(135220,30,30);
矩形p2=新矩形(700300,30,30);
//障碍物
矩形ob1=新矩形(475,75,50600);
矩形项目符号1=新矩形(0,0,10,5);
矩形项目符号2rect=新矩形(0,0,10,5);
矩形通电1=新矩形(475680,50,50);
矩形大子弹=新矩形(200600,50,50);
矩形bigbarket2=新矩形(800600,50,50);
公共void init(){
Move1 m1=新的Move1();
m1.start();
Bullets1 b1=新的Bullets1();
b1.开始();
Move2 m2=新的Move2();
m2.start();
Bullets2 b2=新的Bullets2();
b2.start();
加电p1=新加电();
p1.开始();
BigBullet1 bg1=新的BigBullet1();
bg1.start();
BigBullet2 bg2=新的BigBullet2();
bg2.start();
snd.loop();
}
公共空间涂料(图g){
超级油漆(g);
super.repaint();
g、 setColor(Color.blue);
g、 fillRect(0,01000750);
g、 setColor(Color.WHITE);
g、 setFont(新字体(“Arial”,普通字体,16));
g、 设置颜色(颜色为黑色);
g、 fillRect(ob1.x,ob1.y,ob1.width,ob1.height);
g、 setColor(Color.WHITE);
g、 抽绳(分数,100,100);
g、 fill3DRect(powerUp1.x,powerUp1.y,powerUp1.width,powerUp1.height,true);
g、 fill3DRect(bigBullet.x,bigBullet.y,bigBullet.width,bigBullet.height,true);
g、 fill3DRect(bigBullet2.x,bigBullet2.y,bigBullet2.width,bigBullet2.height,true);
g、 setColor(颜色为黄色);
g、 setFont(新字体(“Arial”,字体粗体,30));
g、 抽绳(“P1死亡”+P1死亡,200,50);
g、 抽绳(“P2死亡”+P2死亡,400,50);
图像img1;
图像img2;
图像img3;
图像img4;
图像img5;
图像img6;
图像img7;
图像img8;
试一试{
URL URL=this.getClass().getResource(“p1.png”);
URL url2=this.getClass().getResource(“p1Right.png”);
URL url3=this.getClass().getResource(“p1Left.png”);
URL url4=this.getClass().getResource(“p1Down.png”);
URL url5=this.getClass().getResource(“bullet.png”);
URL url6=this.getClass().getResource(“bullet2.png”);
URL url7=this.getClass().getResource(“bigbill.png”);
URL url8=this.getClass().getResource(“bigbrullet2.png”);
img1=Toolkit.getDefaultToolkit().getImage(url);
img2=Toolkit.getDefaultToolkit().getImage(url2);
img3=Toolkit.getDefaultToolkit().getImage(url3);
img4=Toolkit.getDefaultToolkit().getImage(url4);
img5=Toolkit.getDefaultToolkit().getImage(url5);
img6=Toolkit.getDefaultToolkit().getImage(url6);
img7=Toolkit.getDefaultToolkit().getImage(url7);
img8=Toolkit.getDefaultToolkit().getImage(url8);
如果(p1方向==向上){
g、 drawImage(img1,p1.x,p1.y,this);
}
如果(p1方向==右侧){
g、 drawImage(img2、p1.x、p1.y、this);
}
如果(p1方向==左){
g、 drawImage(img3,p1.x,p1.y,this);
}
如果(p1方向==向下){
g、 drawImage(img4,p1.x,p1.y,this);
}
如果(p2方向==向上){
g、 drawImage(img1,p2.x,p2.y,this);
}
如果(p2方向==右侧){
g、 drawImage(img2,p2.x,p2.y,this);
}
如果(p2方向==左){
g、 drawImage(img3,p2.x,p2.y,this);
}
如果(p2方向==向下){
g、 drawImage(img4,p2.x,p2.y,this);
}
如果(子弹==射击){
g、 drawImage(img5,bullets1.x,bullets1.y,this);
}
如果(项目符号==其他){
g、 drawImage(img6,bullets1.x,bullets1.y,this);
}
如果(bullets2==shoot2){
g、 drawImage(img6,BulletsRect.x,BulletsRect.y,this);
}
如果(bullets2==Shoot2其他){
g、 drawImage(img5,BulletsRect.x,BulletsRect.y,this);
}
如果((大子弹==大)和(&(子弹==射击)){
g、 drawImage(img7,bullets1.x,bullets1.y,this);
}
如果((bigBullets2==big2)和&(bullets2==Shoot2其他)){
g、 drawImage(img7,BulletsRect.x,BulletsRect.y,this);
}
如果((bigBullets2==big2)和&(bullets2==shoot2)){
g、 drawImage(img8,BulletsRect.x,BulletsRect.y,this);
}
如果((大项目符号==大项目)和&(项目符号==其他项目)){
g、 drawImage(img8,bullets1.x,bullets1.y,this);
}
}
捕获(例外e){
System.out.println(“图像不工作”);
}
}
公共类Move1扩展线程实现KeyListener{
公开募捐{
addKeyListener(此);
while(true){
试一试{
如果(p1.相交(ob1)){
p1.x=135;
p1.y=220;
p16++;
}
如果(p1.相交(p2)){
public class GamePane extends JPanel implements KeyListener {

    final int WIDTH = 900, HEIGHT = 650;
    double p1Speed = 0;
    double p2Speed = 0;
    double bullet1Speed = 7;
    double bullet2Speed = 7;
    final int UP = 0, RIGHT = 1, DOWN = 2, LEFT = 3;
    int p1Direction = 1;
    int p2Direction = 1;
    int counterp1 = 0;
    int counterp2 = 0;
    int scoreN = 0;
    int bullets = 0;
    int p1Deaths = 0;
    int p2Deaths = 0;
    final int shoot = 1;
    final int shootOther = 3;
    final int shoot2 = 1;
    final int shoot2Other = 3;
    final int normal = 1;
    final int big = 3;
    final int normal2 = 1;
    final int big2 = 3;
    int bullets2 = 0;
    int bigBullets = 0;
    int bigBullets2 = 0;
    String scoreS = " ";
    URL eng = this.getClass().getResource("hit.wav");
    AudioClip snd = JApplet.newAudioClip(eng);
    Rectangle p1 = new Rectangle(135, 220, 30, 30);
    Rectangle p2 = new Rectangle(700, 300, 30, 30);
//Obstacles
    Rectangle ob1 = new Rectangle(475, 75, 50, 600);
    Rectangle bullets1 = new Rectangle(0, 0, 10, 5);
    Rectangle bullets2Rect = new Rectangle(0, 0, 10, 5);
    Rectangle powerUp1 = new Rectangle(475, 680, 50, 50);
    Rectangle bigBullet = new Rectangle(200, 600, 50, 50);
    Rectangle bigBullet2 = new Rectangle(800, 600, 50, 50);

    public BadApplet2() {



        Move1 m1 = new Move1();
        m1.start();
        Bullets1 b1 = new Bullets1();
        b1.start();
        Move2 m2 = new Move2();
        m2.start();
        Bullets2 b2 = new Bullets2();
        b2.start();
        PowerUps p1 = new PowerUps();
        p1.start();
        BigBullet1 bg1 = new BigBullet1();
        bg1.start();
        BigBullet2 bg2 = new BigBullet2();
        bg2.start();

        snd.loop();


    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);

        // This bad, don't do it
        //super.repaint();
        g.setColor(Color.blue);
        g.fillRect(0, 0, 1000, 750);
        g.setColor(Color.WHITE);
        g.setFont(new Font("Arial", Font.PLAIN, 16));

        g.setColor(Color.BLACK);
        g.fillRect(ob1.x, ob1.y, ob1.width, ob1.height);

        g.setColor(Color.WHITE);
        g.drawString(scoreS, 100, 100);

        g.fill3DRect(powerUp1.x, powerUp1.y, powerUp1.width, powerUp1.height, true);
        g.fill3DRect(bigBullet.x, bigBullet.y, bigBullet.width, bigBullet.height, true);
        g.fill3DRect(bigBullet2.x, bigBullet2.y, bigBullet2.width, bigBullet2.height, true);
        g.setColor(Color.YELLOW);
        g.setFont(new Font("Arial", Font.BOLD, 30));
        g.drawString("P1 Deaths " + p1Deaths, 200, 50);
        g.drawString("P2 Deaths" + p2Deaths, 400, 50);


        // This is bad, don't do it...
        // Move these to the field level of the class
        // and load them in the constructor
        /*
        Image img1;
        Image img2;
        Image img3;
        Image img4;
        Image img5;
        Image img6;
        Image img7;
        Image img8;
        */
        //try {
            // This is bad don't do it...
            /*
            URL url = this.getClass().getResource("p1.png");
            URL url2 = this.getClass().getResource("p1Right.png");
            URL url3 = this.getClass().getResource("p1Left.png");
            URL url4 = this.getClass().getResource("p1Down.png");
            URL url5 = this.getClass().getResource("bullet.png");
            URL url6 = this.getClass().getResource("bullet2.png");
            URL url7 = this.getClass().getResource("bigBullet.png");
            URL url8 = this.getClass().getResource("bigBullet2.png");
            img1 = Toolkit.getDefaultToolkit().getImage(url);
            img2 = Toolkit.getDefaultToolkit().getImage(url2);
            img3 = Toolkit.getDefaultToolkit().getImage(url3);
            img4 = Toolkit.getDefaultToolkit().getImage(url4);
            img5 = Toolkit.getDefaultToolkit().getImage(url5);
            img6 = Toolkit.getDefaultToolkit().getImage(url6);
            img7 = Toolkit.getDefaultToolkit().getImage(url7);
            img8 = Toolkit.getDefaultToolkit().getImage(url8);
            */

            if (p1Direction == UP) {
                g.drawImage(img1, p1.x, p1.y, this);
            }
            if (p1Direction == RIGHT) {
                g.drawImage(img2, p1.x, p1.y, this);
            }
            if (p1Direction == LEFT) {
                g.drawImage(img3, p1.x, p1.y, this);
            }
            if (p1Direction == DOWN) {
                g.drawImage(img4, p1.x, p1.y, this);
            }

            if (p2Direction == UP) {
                g.drawImage(img1, p2.x, p2.y, this);
            }
            if (p2Direction == RIGHT) {
                g.drawImage(img2, p2.x, p2.y, this);
            }
            if (p2Direction == LEFT) {
                g.drawImage(img3, p2.x, p2.y, this);
            }
            if (p2Direction == DOWN) {
                g.drawImage(img4, p2.x, p2.y, this);
            }
            if (bullets == shoot) {
                g.drawImage(img5, bullets1.x, bullets1.y, this);
            }
            if (bullets == shootOther) {
                g.drawImage(img6, bullets1.x, bullets1.y, this);
            }
            if (bullets2 == shoot2) {
                g.drawImage(img6, bullets2Rect.x, bullets2Rect.y, this);
            }
            if (bullets2 == shoot2Other) {
                g.drawImage(img5, bullets2Rect.x, bullets2Rect.y, this);
            }
            if ((bigBullets == big) && (bullets == shoot)) {
                g.drawImage(img7, bullets1.x, bullets1.y, this);
            }
            if ((bigBullets2 == big2) && (bullets2 == shoot2Other)) {
                g.drawImage(img7, bullets2Rect.x, bullets2Rect.y, this);
            }
            if ((bigBullets2 == big2) && (bullets2 == shoot2)) {
                g.drawImage(img8, bullets2Rect.x, bullets2Rect.y, this);
            }
            if ((bigBullets == big) && (bullets == shootOther)) {
                g.drawImage(img8, bullets1.x, bullets1.y, this);
            }
        //} catch (Exception e) {
        //    System.out.println("The images dont work");
        //}
    }

    // Add the rest of the code
}
public class RadicalRacingApplet extends JApplet {
    public void init() {
        setLayout(new BorderLayout());
        add(new GamePanel());
    }
}