これは私のコードです。実際にはスペース インベーダー ゲームです。ダブルバッファリングを試したアニメーションをインターネットで検索すると、ちらつきはなくなりますが、出力全体が台無しになります。また、Java は非推奨の API を使用またはオーバーライドします。注: 詳細については、-Xlint:deprecation を使用して再コンパイルしてください。これはとても難しいです...
import javax.sound.sampled.*;
import java.applet.*;
import java.awt.*;
public class SpaceInvaders extends Applet implements Runnable{
AudioClip soundFile1;
int Xposition=500,Xposition1=-500,Yposition=15;
Thread runner;
public void start()
{
if (runner == null);
{
runner = new Thread(this);
runner.start();
}
}
public void stop()
{
if (runner != null);
{
runner.stop();
runner = null;
}
}
public void run()
{
while(true)
{
setBackground(Color.black);
repaint();
try {Thread.sleep(20);}
catch(InterruptedException e) { }
}
}
public void init()
{
soundFile1 = getAudioClip(getDocumentBase(),"si.au");
//soundFile1.play();
soundFile1.loop();
}
public void paint( Graphics g ) {
g.setColor( Color.orange );
g.fillRect(Xposition+50,10,10,10);
g.fillRect(Xposition+60,10,10,10);
g.fillRect(Xposition+40,20,10,10);
g.fillRect(Xposition+50,20,10,10);
g.fillRect(Xposition+60,20,10,10);
g.fillRect(Xposition+70,20,10,10);
g.fillRect(Xposition+30,30,10,10);
g.fillRect(Xposition+40,30,10,10);
g.fillRect(Xposition+50,30,10,10);
g.fillRect(Xposition+60,30,10,10);
g.fillRect(Xposition+70,30,10,10);
g.fillRect(Xposition+80,30,10,10);
g.fillRect(Xposition+20,40,10,10);
g.fillRect(Xposition+30,40,10,10);
g.fillRect(Xposition+50,40,10,10);
g.fillRect(Xposition+60,40,10,10);
g.fillRect(Xposition+80,40,10,10);
g.fillRect(Xposition+90,40,10,10);
g.fillRect(Xposition+20,50,10,10);
g.fillRect(Xposition+30,50,10,10);
g.fillRect(Xposition+40,50,10,10);
g.fillRect(Xposition+50,50,10,10);
g.fillRect(Xposition+60,50,10,10);
g.fillRect(Xposition+70,50,10,10);
g.fillRect(Xposition+80,50,10,10);
g.fillRect(Xposition+90,50,10,10);
g.fillRect(Xposition+40,60,10,10);
g.fillRect(Xposition+70,60,10,10);
g.fillRect(Xposition+30,70,10,10);
g.fillRect(Xposition+50,70,10,10);
g.fillRect(Xposition+60,70,10,10);
g.fillRect(Xposition+80,70,10,10);
g.fillRect(Xposition+20,80,10,10);
g.fillRect(Xposition+40,80,10,10);
g.fillRect(Xposition+70,80,10,10);
g.fillRect(Xposition+90,80,10,10);
g.setColor(Color.red);
g.fillRect(Xposition+140,10,10,10);
g.fillRect(Xposition+200,10,10,10);
g.fillRect(Xposition+120,20,10,10);
g.fillRect(Xposition+150,20,10,10);
g.fillRect(Xposition+190,20,10,10);
g.fillRect(Xposition+220,20,10,10);
g.fillRect(Xposition+120,30,10,10);
g.fillRect(Xposition+140,30,10,10);
g.fillRect(Xposition+150,30,10,10);
g.fillRect(Xposition+160,30,10,10);
g.fillRect(Xposition+170,30,10,10);
g.fillRect(Xposition+180,30,10,10);
g.fillRect(Xposition+190,30,10,10);
g.fillRect(Xposition+200,30,10,10);
g.fillRect(Xposition+220,30,10,10);
g.fillRect(Xposition+120,40,10,10);
g.fillRect(Xposition+130,40,10,10);
g.fillRect(Xposition+140,40,10,10);
g.fillRect(Xposition+160,40,10,10);
g.fillRect(Xposition+170,40,10,10);
g.fillRect(Xposition+180,40,10,10);
g.fillRect(Xposition+200,40,10,10);
g.fillRect(Xposition+210,40,10,10);
g.fillRect(Xposition+220,40,10,10);
g.fillRect(Xposition+120,50,10,10);
g.fillRect(Xposition+130,50,10,10);
g.fillRect(Xposition+140,50,10,10);
g.fillRect(Xposition+150,50,10,10);
g.fillRect(Xposition+160,50,10,10);
g.fillRect(Xposition+170,50,10,10);
g.fillRect(Xposition+180,50,10,10);
g.fillRect(Xposition+190,50,10,10);
g.fillRect(Xposition+200,50,10,10);
g.fillRect(Xposition+210,50,10,10);
g.fillRect(Xposition+220,50,10,10);
g.fillRect(Xposition+130,60,10,10);
g.fillRect(Xposition+140,60,10,10);
g.fillRect(Xposition+150,60,10,10);
g.fillRect(Xposition+160,60,10,10);
g.fillRect(Xposition+170,60,10,10);
g.fillRect(Xposition+180,60,10,10);
g.fillRect(Xposition+190,60,10,10);
g.fillRect(Xposition+200,60,10,10);
g.fillRect(Xposition+210,60,10,10);
g.fillRect(Xposition+140,70,10,10);
g.fillRect(Xposition+200,70,10,10);
g.fillRect(Xposition+130,80,10,10);
g.fillRect(Xposition+210,80,10,10);
g.setColor(Color.blue);
g.fillRect(Xposition+280,10,10,10);
g.fillRect(Xposition+290,10,10,10);
g.fillRect(Xposition+270,20,10,10);
g.fillRect(Xposition+280,20,10,10);
g.fillRect(Xposition+290,20,10,10);
g.fillRect(Xposition+300,20,10,10);
g.fillRect(Xposition+260,30,10,10);
g.fillRect(Xposition+270,30,10,10);
g.fillRect(Xposition+280,30,10,10);
g.fillRect(Xposition+290,30,10,10);
g.fillRect(Xposition+300,30,10,10);
g.fillRect(Xposition+310,30,10,10);
g.fillRect(Xposition+250,40,10,10);
g.fillRect(Xposition+260,40,10,10);
g.fillRect(Xposition+280,40,10,10);
g.fillRect(Xposition+290,40,10,10);
g.fillRect(Xposition+310,40,10,10);
g.fillRect(Xposition+320,40,10,10);
g.fillRect(Xposition+250,50,10,10);
g.fillRect(Xposition+260,50,10,10);
g.fillRect(Xposition+270,50,10,10);
g.fillRect(Xposition+280,50,10,10);
g.fillRect(Xposition+290,50,10,10);
g.fillRect(Xposition+300,50,10,10);
g.fillRect(Xposition+310,50,10,10);
g.fillRect(Xposition+320,50,10,10); //20=250 30=260 40=270 50=280 60=290 70=300 80=310 90=320
g.fillRect(Xposition+260,60,10,10);
g.fillRect(Xposition+280,60,10,10);
g.fillRect(Xposition+290,60,10,10);
g.fillRect(Xposition+310,60,10,10);
g.fillRect(Xposition+250,70,10,10);
g.fillRect(Xposition+320,70,10,10);
g.fillRect(Xposition+260,80,10,10);
g.fillRect(Xposition+310,80,10,10);
g.setColor(Color.yellow);
g.fillRect(Xposition+370,10,10,10);
g.fillRect(Xposition+430,10,10,10);
g.fillRect(Xposition+380,20,10,10);
g.fillRect(Xposition+420,20,10,10);
g.fillRect(Xposition+370,30,10,10);
g.fillRect(Xposition+380,30,10,10);
g.fillRect(Xposition+390,30,10,10);
g.fillRect(Xposition+400,30,10,10);
g.fillRect(Xposition+410,30,10,10);
g.fillRect(Xposition+420,30,10,10);
g.fillRect(Xposition+430,30,10,10);
g.fillRect(Xposition+360,40,10,10);
g.fillRect(Xposition+370,40,10,10);
g.fillRect(Xposition+390,40,10,10);
g.fillRect(Xposition+400,40,10,10);
g.fillRect(Xposition+410,40,10,10);
g.fillRect(Xposition+430,40,10,10);
g.fillRect(Xposition+440,40,10,10);
g.fillRect(Xposition+350,50,10,10);
g.fillRect(Xposition+360,50,10,10);
g.fillRect(Xposition+370,50,10,10);
g.fillRect(Xposition+380,50,10,10);
g.fillRect(Xposition+390,50,10,10);
g.fillRect(Xposition+400,50,10,10);
g.fillRect(Xposition+410,50,10,10);
g.fillRect(Xposition+420,50,10,10);
g.fillRect(Xposition+430,50,10,10);
g.fillRect(Xposition+440,50,10,10);
g.fillRect(Xposition+450,50,10,10); //120=350 130=360 140=370 150=380 160=390 170=400 180=410 190=420 200=430 210=440 220=450
g.fillRect(Xposition+350,60,10,10);
g.fillRect(Xposition+370,60,10,10);
g.fillRect(Xposition+380,60,10,10);
g.fillRect(Xposition+390,60,10,10);
g.fillRect(Xposition+400,60,10,10);
g.fillRect(Xposition+410,60,10,10);
g.fillRect(Xposition+420,60,10,10);
g.fillRect(Xposition+430,60,10,10);
g.fillRect(Xposition+450,60,10,10);
g.fillRect(Xposition+350,70,10,10);
g.fillRect(Xposition+370,70,10,10);
g.fillRect(Xposition+430,70,10,10);
g.fillRect(Xposition+450,70,10,10);
g.fillRect(Xposition+380,80,10,10);
g.fillRect(Xposition+390,80,10,10);
g.fillRect(Xposition+410,80,10,10);
g.fillRect(Xposition+420,80,10,10);
Xposition--;
if (Xposition < -500)
{
Xposition = 500;
}
g.setColor(Color.green);
g.fillRect(Xposition1+230,130,10,10);
g.fillRect(Xposition1+240,130,10,10);
g.fillRect(Xposition1+250,130,10,10);
g.fillRect(Xposition1+260,130,10,10);
g.fillRect(Xposition1+270,130,10,10);
g.fillRect(Xposition1+280,130,10,10);
g.fillRect(Xposition1+210,140,10,10);
g.fillRect(Xposition1+220,140,10,10);
g.fillRect(Xposition1+230,140,10,10);
g.fillRect(Xposition1+240,140,10,10);
g.fillRect(Xposition1+250,140,10,10);
g.fillRect(Xposition1+260,140,10,10);
g.fillRect(Xposition1+270,140,10,10);
g.fillRect(Xposition1+280,140,10,10);
g.fillRect(Xposition1+290,140,10,10);
g.fillRect(Xposition1+300,140,10,10);
g.fillRect(Xposition1+200,150,10,10);
g.fillRect(Xposition1+210,150,10,10);
g.fillRect(Xposition1+220,150,10,10);
g.fillRect(Xposition1+230,150,10,10);
g.fillRect(Xposition1+240,150,10,10);
g.fillRect(Xposition1+250,150,10,10);
g.fillRect(Xposition1+260,150,10,10);
g.fillRect(Xposition1+270,150,10,10);
g.fillRect(Xposition1+280,150,10,10);
g.fillRect(Xposition1+290,150,10,10);
g.fillRect(Xposition1+300,150,10,10);
g.fillRect(Xposition1+310,150,10,10);
g.fillRect(Xposition1+190,160,10,10);
g.fillRect(Xposition1+200,160,10,10);
g.fillRect(Xposition1+220,160,10,10);
g.fillRect(Xposition1+230,160,10,10);
g.fillRect(Xposition1+250,160,10,10);
g.fillRect(Xposition1+260,160,10,10);
g.fillRect(Xposition1+280,160,10,10);
g.fillRect(Xposition1+290,160,10,10);
g.fillRect(Xposition1+310,160,10,10);
g.fillRect(Xposition1+320,160,10,10);
g.fillRect(Xposition1+180,170,10,10);
g.fillRect(Xposition1+190,170,10,10);
g.fillRect(Xposition1+200,170,10,10);
g.fillRect(Xposition1+210,170,10,10);
g.fillRect(Xposition1+220,170,10,10);
g.fillRect(Xposition1+230,170,10,10);
g.fillRect(Xposition1+240,170,10,10);
g.fillRect(Xposition1+250,170,10,10);
g.fillRect(Xposition1+260,170,10,10);
g.fillRect(Xposition1+270,170,10,10);
g.fillRect(Xposition1+280,170,10,10);
g.fillRect(Xposition1+290,170,10,10);
g.fillRect(Xposition1+300,170,10,10);
g.fillRect(Xposition1+310,170,10,10);
g.fillRect(Xposition1+320,170,10,10);
g.fillRect(Xposition1+330,170,10,10);
g.fillRect(Xposition1+200,180,10,10);
g.fillRect(Xposition1+210,180,10,10);
g.fillRect(Xposition1+220,180,10,10);
g.fillRect(Xposition1+250,180,10,10);
g.fillRect(Xposition1+260,180,10,10);
g.fillRect(Xposition1+290,180,10,10);
g.fillRect(Xposition1+300,180,10,10);
g.fillRect(Xposition1+310,180,10,10);
g.fillRect(Xposition1+210,190,10,10);
g.fillRect(Xposition1+300,190,10,10);
Xposition1++;
if (Xposition1 > 500)
{
Xposition1 = -500;
}
Yposition--;
if (Yposition > 500)
{
Yposition = -500;
}
g.setColor(Color.magenta);
g.fillRect(260,Yposition+240,10,10);
g.fillRect(260,Yposition+250,10,10);
g.setColor(Color.white);
g.fillRect(260,310,10,10);
g.fillRect(250,320,10,10);
g.fillRect(260,320,10,10);
g.fillRect(270,320,10,10);
g.fillRect(250,330,10,10);
g.fillRect(260,330,10,10);
g.fillRect(270,330,10,10);
g.fillRect(200,340,10,10);
g.fillRect(210,340,10,10);
g.fillRect(220,340,10,10);
g.fillRect(230,340,10,10);
g.fillRect(240,340,10,10);
g.fillRect(250,340,10,10);
g.fillRect(260,340,10,10);
g.fillRect(270,340,10,10);
g.fillRect(280,340,10,10);
g.fillRect(290,340,10,10);
g.fillRect(300,340,10,10);
g.fillRect(310,340,10,10);
g.fillRect(320,340,10,10);
g.fillRect(190,350,10,10);
g.fillRect(200,350,10,10);
g.fillRect(210,350,10,10);
g.fillRect(220,350,10,10);
g.fillRect(230,350,10,10);
g.fillRect(240,350,10,10);
g.fillRect(250,350,10,10);
g.fillRect(260,350,10,10);
g.fillRect(270,350,10,10);
g.fillRect(280,350,10,10);
g.fillRect(290,350,10,10);
g.fillRect(300,350,10,10);
g.fillRect(310,350,10,10);
g.fillRect(320,350,10,10);
g.fillRect(330,350,10,10);
g.fillRect(190,360,10,10);
g.fillRect(200,360,10,10);
g.fillRect(210,360,10,10);
g.fillRect(220,360,10,10);
g.fillRect(230,360,10,10);
g.fillRect(240,360,10,10);
g.fillRect(250,360,10,10);
g.fillRect(260,360,10,10);
g.fillRect(270,360,10,10);
g.fillRect(280,360,10,10);
g.fillRect(290,360,10,10);
g.fillRect(300,360,10,10);
g.fillRect(310,360,10,10);
g.fillRect(320,360,10,10);
g.fillRect(330,360,10,10);
g.fillRect(190,370,10,10);
g.fillRect(200,370,10,10);
g.fillRect(210,370,10,10);
g.fillRect(220,370,10,10);
g.fillRect(230,370,10,10);
g.fillRect(240,370,10,10);
g.fillRect(250,370,10,10);
g.fillRect(260,370,10,10);
g.fillRect(270,370,10,10);
g.fillRect(280,370,10,10);
g.fillRect(290,370,10,10);
g.fillRect(300,370,10,10);
g.fillRect(310,370,10,10);
g.fillRect(320,370,10,10);
g.fillRect(330,370,10,10);
g.fillRect(190,380,10,10);
g.fillRect(200,380,10,10);
g.fillRect(210,380,10,10);
g.fillRect(220,380,10,10);
g.fillRect(230,380,10,10);
g.fillRect(240,380,10,10);
g.fillRect(250,380,10,10);
g.fillRect(260,380,10,10);
g.fillRect(270,380,10,10);
g.fillRect(280,380,10,10);
g.fillRect(290,380,10,10);
g.fillRect(300,380,10,10);
g.fillRect(310,380,10,10);
g.fillRect(320,380,10,10);
g.fillRect(330,380,10,10);
}
public static void main(String[] args)
{
}
}