import java.applet.*; import java.awt.*; import java.awt.event.*; import java.util.*; public class Pildike5 extends Applet implements Runnable, KeyListener, AdjustmentListener{ Image taust; Image pilt; AudioClip linnutaust; Graphics piltg; Image lill, lill2; int lillekorgus=100, lillelaius=50; Image putukas; double putukax=100, putukay=150; double putukaxkiirus=0, putukaykiirus=0; double kiirusesamm=0.2; int putukalaius=35, putukakorgus=35; int imemiskaugus=10; int mustripikkus=160; double samm=1; int paus=50; double nihe=0; double aeg=0; int laius=300, korgus=300; int lilli=0, imetud=0, kadunud=0; long alghetk=new Date().getTime(); Vector lillekesed=new Vector(); double lillelisamistoenaosus=0.02*samm; Canvas louend=new Canvas(){ public boolean isFocusTraversable(){ return true; } }; Scrollbar sbtaustasamm=new Scrollbar(Scrollbar.HORIZONTAL, 10, 5, 0, 100); Scrollbar sbputukatundlikkus=new Scrollbar(Scrollbar.HORIZONTAL, 2, 1, 1, 20); Scrollbar sblilletoenaosus=new Scrollbar(Scrollbar.HORIZONTAL, 20, 1, 0, 100); boolean veel=false; public Pildike5(){ setLayout(new BorderLayout()); Panel p1=new Panel(new GridLayout(3, 2)); p1.add(new Label("Maapinna kiirus")); p1.add(sbtaustasamm); p1.add(new Label("Putuka liikumistundlikkus")); p1.add(sbputukatundlikkus); p1.add(new Label("Lillede sagedus")); p1.add(sblilletoenaosus); add(p1, BorderLayout.SOUTH); add(louend, BorderLayout.CENTER); louend.addKeyListener(this); sbtaustasamm.addAdjustmentListener(this); sbputukatundlikkus.addAdjustmentListener(this); sblilletoenaosus.addAdjustmentListener(this); } public void adjustmentValueChanged(AdjustmentEvent e){ samm=sbtaustasamm.getValue()/10.0; kiirusesamm=sbputukatundlikkus.getValue()/10.0; lillelisamistoenaosus=sblilletoenaosus.getValue()/1000.0*samm; louend.requestFocus(); } public void joonista(){ koostaPilt(); louend.getGraphics().drawImage(pilt, 0, 0, this); } void laeKlipid(){ if(taust==null)taust=laePilt("rohetaust320x480.gif"); if(putukas==null)putukas=laePilt("sirelane.gif"); if(lill==null)lill=laePilt("lill1a.gif"); if(lill2==null)lill2=laePilt("lill1.gif"); if(pilt==null){ pilt=createImage(laius, korgus); piltg=pilt.getGraphics(); } if(Piiksuja.sahin==null) Piiksuja.sahin=laeKlipp("sahin.au"); if(linnutaust==null){ linnutaust=laeKlipp("linnutaust.au"); linnutaust.loop(); } korgus=louend.getSize().height; laius=louend.getSize().width; louend.requestFocus(); } void arvutaAsukohad(){ nihe=nihe+samm; aeg=aeg+samm; if(nihe>mustripikkus)nihe=nihe-mustripikkus; if(sees(putukax+putukaxkiirus, putukay+putukaykiirus, laius-putukalaius, korgus-putukakorgus)){ putukax+=putukaxkiirus; putukay+=putukaykiirus; } else { putukaxkiirus=putukaykiirus=0; } } void koostaPilt(){ if(taust==null)laeKlipid(); arvutaAsukohad(); eemaldaVanadLilled(); lisaUusiLilli(); kontrolliImemisi(); piltg.drawImage(taust, 0, (int)nihe-mustripikkus, this); joonistaLilled(); joonistaStatistika(); piltg.drawImage(putukas, (int)putukax, (int)putukay, this); } void lisaUusiLilli(){ for(double lt=lillelisamistoenaosus; lt>0; lt=lt-1){ if(Math.random()korgus+lillekorgus){ if(!l.tyhi)kadunud++; lillekesed.removeElementAt(i); i--; } } } void kontrolliImemisi(){ int kauguseruut=imemiskaugus*imemiskaugus; for(int i=0; i=0 && x=0 && y0)putukaxkiirus+=kiirusesamm; else putukaxkiirus=kiirusesamm; } if(kood==KeyEvent.VK_UP){ if(putukaykiirus<0)putukaykiirus-=kiirusesamm; else putukaykiirus=-kiirusesamm; } if(kood==KeyEvent.VK_DOWN){ if(putukaykiirus>0)putukaykiirus+=kiirusesamm; else putukaykiirus=kiirusesamm; } } public void keyReleased(KeyEvent e){} public void keyTyped(KeyEvent e){} Image laePilt(String failinimi){ try{ return getImage(getCodeBase(), failinimi); }catch(Exception e){} return Toolkit.getDefaultToolkit().getImage(failinimi); } AudioClip laeKlipp(String failinimi){ return getAudioClip(getDocumentBase(), failinimi); } }