import java.applet.Applet; import java.awt.*; import java.awt.event.*; import java.util.Vector; public class Ralli extends Applet implements Runnable, KeyListener, ActionListener{ Image taust; Image varuratas; Image pilt; Image karakas; Graphics piltg; Image auto; Image miilits; int x=200; //miilitsa oma int y=0; //miilitsa oma int varuratasx=300; int lugeja=0; int varuratasy=0; int autox=340, autoy=400; int autolaius=30, autokorgus=15; int autosamm=10; int mustripikkus=160; int miilitsapikkus=2000; int varurattapikkus=3000; int suvaline=(int)(Math.random()*3000); int suvalineteel=(int)(Math.random()*700); int suvalinevaruratas=(int)(Math.random()*700); int samm=20; int miilitsasamm=20; int varurattasamm=30; int paus=50; int nihe=0; int miilitsanihe=0; int varurattanihe=0; int laius=800, korgus=700; boolean veel=false; Button nupp1=new Button("See on suurepärane rallimäng! Kogu varuarattaid ja hoidu politseist! klikka, et alustada!"); public Ralli(){ addKeyListener(this); //nupp seletusega keskele GridBagLayout gb=new GridBagLayout(); GridBagConstraints c =new GridBagConstraints(); setLayout(gb); c.gridx=c.gridy=0; gb.setConstraints(nupp1, c); add(nupp1); nupp1.addActionListener(this); } public void paint(Graphics g){ koostaPilt(); g.drawImage(pilt, 0, 0, this); } public void update(Graphics g){ paint(g); } void koostaPilt(){ if(taust==null)taust=laePilt("taust.jpg"); if(auto==null)auto=laePilt("auto.gif"); if(varuratas==null)varuratas=laePilt("varuratas.gif"); if(miilits==null)miilits=laePilt("miilits.gif"); if(karakas==null)karakas=laePilt("karakas.gif"); if(pilt==null){ pilt=createImage(laius, korgus); piltg=pilt.getGraphics(); MediaTracker md=new MediaTracker(this); md.addImage(taust, 0); md.addImage(auto, 1); md.addImage(varuratas,2); md.addImage(miilits,3); md.addImage(karakas,4); try{ md.waitForAll(); }catch(Exception viga){ System.out.println("Viga piltide lugemisel"); } } nihe=nihe+samm; varurattanihe=varurattanihe+varurattasamm; miilitsanihe=miilitsanihe+miilitsasamm; if(nihe>mustripikkus)nihe=nihe-mustripikkus; piltg.drawImage(taust, 0, nihe-mustripikkus, this); piltg.drawImage(auto, autox, autoy, this); if(varurattanihe>varurattapikkus){ varurattanihe=varurattanihe-varurattapikkus;//ratta y suvalinevaruratas=(int)(Math.random()*400+200);//miilitsa x } piltg.drawImage(varuratas, suvalinevaruratas ,varurattanihe,this); if(miilitsanihe>miilitsapikkus){ miilitsanihe=miilitsanihe-miilitsapikkus;//miilitsa y suvalineteel=(int)(Math.random()*400+200);//miilitsa x } piltg.drawImage(miilits, suvalineteel ,miilitsanihe,this); //punktide kogumine int kokkux=0; kokkux=autox-suvalinevaruratas; int kokkuy=0; kokkuy=autoy-varurattanihe; double punktid=0; punktid=Math.sqrt(kokkux*kokkux+kokkuy*kokkuy); if (punktid<=75){ piltg.setColor(Color.white); piltg.drawString("BOONUS!",suvalinevaruratas,varurattanihe); lugeja=lugeja+5; } //mängust välja viskamine int laksux=0; laksux=autox-suvalineteel-50; int laksuy=0; laksuy=autoy-miilitsanihe-50; double otsas6it=0; otsas6it=Math.sqrt(laksux*laksux+laksuy*laksuy); if (otsas6it<=76){ piltg.drawImage(karakas,100,50, this);//joonistab kõmmipildi piltg.setColor(Color.white); piltg.drawString("Said "+lugeja+" punni, sa LOOZER!",50,50); System.out.println("Said "+lugeja+" punni, sa LOOZER!"); getGraphics().drawImage(pilt, 0, 0, this); veel=false; try{ Thread.sleep(10000); System.exit(0); //veakood 0 }catch(Exception e){} } } public void start(){ veel=true; new Thread(this).start(); } public void run(){ while(veel){ repaint(); try{Thread.sleep(paus); }catch(Exception e){} } } public void stop(){ veel=false; } public void actionPerformed(ActionEvent e){ nupp1.setVisible(false); } public void keyPressed(KeyEvent e){ int kood=e.getKeyCode(); if((kood==KeyEvent.VK_LEFT) && (autox>autosamm))autox-=autosamm; if((kood==KeyEvent.VK_RIGHT) && (autoxautosamm)autoy-=autosamm; if(kood==KeyEvent.VK_DOWN && autoy riil geim"); Ralli ap=new Ralli(); f.add(ap); f.setSize(800, 700); f.setVisible(true); ap.start(); } }