/* Ussimäng ver. 0.4b Grupp: märt, martin, kaido, pjotr, rommy 2003 */ import java.awt.*; import java.applet.*; import java.awt.event.*; import java.util.*; public class UssiMang extends Applet implements Runnable, KeyListener { ///////////////// SEADED /////////////////// // Ussi seaded int kiirus=12; // kiirus pikselites (kuna "kiirus" on suurem kui "suurus", siis ei ole ussi lülid koos!) int suurus=11; // ruudu, millest koosneb uss, suurus! int sabaPikkus=10; // esialgne pikkus Color taustv=new Color(155,155,155); // Erinevad ussi ja keskkonna värvid Color joonedv=new Color(120,120,120); Color kehav=new Color(80,80,80); Color peav=new Color(0,0,0); // Mänguväljaku mõõtmed (ruuduline pind!) int laius=kiirus*35; // 35 veergu int korgus=kiirus*25; // 25 rida int dx=8; // Mänguväljaku asukoht ekraanil! int dy=79; // Mängu seaded boolean valmis=false; // true - mäng lõppeb ja aken sulgub boolean stopp=false; // true - mäng on läbi boolean paus=false; // true - paus /////////////////////////////////////////// ///////// Punkt, mida tuleb püüda ///////// int x=0; // asukoht mänguväljakul int y=0; int vrv=150; // värv (Color(vrv,vrv,vrv) <- ainult halltoonid) int vrvSuund=10; // värvi muutumise suund ja kiirus (punkt vilgub!) /////////////////////////////////////////// ///////////// LYLI STRUKTUUR ///////////// class Lyli { // Algväärtustamine public Lyli() { x=dx; // väljaku kõige esimene ruut! y=dy; kiirusX=kiirus; // uss liigub paremale kiirusY=0; } public int x; // x-koordinaat public int y; // y-koordinaat public int kiirusX; //liikumise kiirus x-teljes. -1 tähendab liikumist teises suunas e. vasakule public int kiirusY; // -||- y-teljes, -1 tähendab liikumist üles }; Vector uss=new Vector(); // Siia sisse tuleb uss ise! Uss koosneb lülidest. // Ruuduline taust Image pilt; Graphics piltg; // Enne ekraanile joonistamist pannakse kõik siia! Image puhver; Graphics puhverg; // Taust Image Skin; public UssiMang() { PanePunkt(); // leian otsitavale punktile uue asukoha PaneUss(); // loon ussi addKeyListener(this); requestFocus(); } // Panen vektorisse "uss" n liiget! public void PaneUss() { for(int i=0; i150) { vrv=100; vrvSuund*=-1; } puhverg.setColor(new Color(vrv,vrv,vrv)); puhverg.fillRect(x, y, suurus, suurus); /////////////////////////////////////////////// ////////////// JOONISTAN USSI ///////////////// puhverg.setColor(kehav); Iterator koht=uss.iterator(); for(int i=0; koht.hasNext(); i++) { Lyli temp=(Lyli)koht.next(); puhverg.fillRect(temp.x, temp.y, suurus, suurus); } // Teen pea teist värvi puhverg.setColor(peav); // peav - pea värv Lyli fookuses=(Lyli)uss.firstElement(); puhverg.fillRect(fookuses.x, fookuses.y, suurus, suurus); /////////////////////////////////////////////// // Kannan puhvri sisu ekraanile g.drawImage(puhver, 0,0, this); } // Leian otsitavale punktile uue koha! public void PanePunkt() { x=(int)(Math.random()*laius/kiirus)*kiirus+dx; y=(int)(Math.random()*korgus/kiirus)*kiirus+dy; vrv=150; // punkti värv } // Ussi liigutamine public void LiigutaUssi() { Lyli pea0=(Lyli)uss.firstElement(); Lyli pea=new Lyli(); pea.x=pea0.x; pea.y=pea0.y; pea.kiirusX=pea0.kiirusX; pea.kiirusY=pea0.kiirusY; ////////////////////////////// Pea liigutamine ////////////////////////////// pea.x+=pea.kiirusX; pea.y+=pea.kiirusY; ///////////////////////////////////////////////////////////////////////////// ///////////////////////////// Iga ussi punkt on alati ekraanil ////////////// // Kui uss läheb ühest ekraani servast välja, siis tuleb ta teisest äärest jälle sisse tagasi! if(pea.x>=dx+laius) { pea.x=dx; } if(pea.x=dy+korgus) { pea.y=dy; } if (pea.y