import java.awt.*; import java.applet.Applet; import java.awt.image.*;// pildi jaoks import java.awt.event.*; import java.net.*; import java.io.*; import java.util.*; /** * Peaklass, meie programmi süda */ public class ilutulestik extends Applet implements MouseListener{ Image taust=Toolkit.getDefaultToolkit().getImage("taevas.jpg"); //taust boolean hiirevajutus=false; static BufferedImage malupilt; public ilutulestik(){ addMouseListener(this); //kuulab hiirekest } /** * Reageerib hiirevajutusele ja rakett saab algkoordinaadid */ public void mousePressed(MouseEvent e){ int x=e.getX(); //saab algkoordinaadid int y=e.getY(); if (hiirevajutus==false){ hiirevajutus=true; repaint(); } new ilutulestikLoim(x, y, getGraphics()).start(); //start paneb käima } public void mouseReleased(MouseEvent e){} public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public void mouseClicked(MouseEvent e){} /** * Kaetakse üle, et vältida tausta vilkumist */ public void update(Graphics g){ paint(g); } /** * Joonistatakse taustapilt, kasutades mälupilti */ public void paint(Graphics g){ malupilt=new BufferedImage( //taustapildi joonistab getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB); Graphics malug=malupilt.createGraphics(); malug.drawImage(taust, 0, 0, getWidth(), getHeight(), this); g.drawImage(malupilt, 0, 0, this); if (hiirevajutus==false){ g.setColor(Color.white); g.setFont (new Font("Times", Font.BOLD, 30)); g.drawString("Kliki... :)", 100,110); g.setFont (new Font("Times", Font.BOLD, 20)); g.drawString("Made by Aveli, Airin & Maret, 2001", 650,700); g.setFont (new Font("Times", Font.BOLD, 60)); g.drawString("ILUSAT UUT AASTAT !!", 200, 330);} } /** * Programmi käivitus */ public static void main(String argumendid[]){ //käivitab programmi Frame f=new Frame("H E A D U U T A A S T A T ! ! !"); f.add(new ilutulestik()); f.setSize(1000, 740); f.setVisible(true); f.addWindowListener(new Raamikuular());//selleks et kinni panna } /** * Teeb lõime, kus annab igale raketile värvi */ class ilutulestikLoim extends Thread{ // teeb ilutulestiku lõime int x, y, ots; Graphics g; Color a; public ilutulestikLoim(int ux, int uy, Graphics ug){ //annab uued koordinaadid, mida kasutab ainult lõime sees x=ux; y=uy; g=ug; ots=y-100; Color[] Varvid=new Color[8]; Varvid[0]=Color.yellow; Varvid[1]=Color.red; Varvid[2]=Color.green; Varvid[3]=Color.blue; Varvid[4]=Color.white; Varvid[5]=Color.gray; Varvid[6]=Color.magenta; Varvid[7]=Color.cyan; a=Varvid[(int)(Math.random()*8)]; } /** * Käivitab hiirevajutuse peale raketi õhkutõusmise */ public void run(){ for(; y>ots; y=y-6){ //hiirevajutuse peale alustab raketi tõusmist g.setColor(a); g.setXORMode(Color.black); g.fillOval(x, y, 10, 10); try{ Thread.sleep(30); }catch(Exception ex){} g.fillOval(x, y, 10, 10); } new koverLoim(x, y, g, -15,a).start(); //siit hakkab plahvatus new koverLoim(x, y, g, -5, a).start(); new koverLoim(x, y, g, 0, a).start(); new koverLoim(x, y, g, 5, a).start(); new koverLoim(x, y, g, 15, a).start(); new koverLoim(x, y, g, 25, a).start(); new koverLoim(x, y, g, 35, a).start(); new koverLoim(x, y, g, 45, a).start(); new koverLoim(x, y, g, 55, a).start(); new koverLoim(x, y, g, 65, a).start(); new koverLoim(x, y, g, 75, a).start(); new koverLoim(x, y, g, 85, a).start(); new koverLoim(x, y, g, 90, a).start(); new koverLoim(x, y, g, 95, a).start(); new koverLoim(x, y, g, 105, a).start(); new koverLoim(x, y, g, 115, a).start(); new koverLoim(x, y, g, 125, a).start(); new koverLoim(x, y, g, 135, a).start(); new koverLoim(x, y, g, 145, a).start(); new koverLoim(x, y, g, 155, a).start(); new koverLoim(x, y, g, 165, a).start(); new koverLoim(x, y, g, 175, a).start(); new koverLoim(x, y, g, 180, a).start(); new koverLoim(x, y, g, 185, a).start(); new koverLoim(x, y, g, 195, a).start(); } } /** * Loob plahvatuse */ class koverLoim extends Thread{ //plahvatuse lõim double x, y, ots; Graphics g; double nurk; Color a; public koverLoim(int ux, int uy, Graphics ug, double unurk, Color ua){ x=ux; y=uy; g=ug; a=ua; ots=y+200; nurk=unurk; } /** * Käivitab plahvatuse */ public void run(){ // paneb käima plahvatuse lõime double kiirus=10; //mida suurem kiirus, seda suurem kaar double kiirusx=Math.cos(Math.toRadians(nurk))*kiirus; double kiirusy=-Math.sin(Math.toRadians(nurk))*kiirus; double kiirendusy=0.5; // mida väiksem seda kiirem while (y