Calaveragg1.java

Categorías: CategoryJava | CategoryProgramacion

   1 
   2 package savetheearthsk;
   3 
   4 import java.awt.Color;
   5 import java.awt.Graphics;
   6 import java.io.FileInputStream;
   7 import java.io.FileNotFoundException;
   8 import java.io.IOException;
   9 import java.util.ArrayList;
  10 import java.util.logging.Level;
  11 import java.util.logging.Logger;
  12 import sun.audio.AudioPlayer;
  13 import sun.audio.AudioStream;
  14 
  15 /**
  16  *
  17  * @author lina maria bermudez
  18  * @author mario nicolas arcila
  19  */
  20 /** Esta clase es aquella que dibuja la calavera principal
  21  *
  22  *
  23  */
  24 public class Calaveragg1 extends ObjetoGrafico implements Runnable {
  25 
  26     /**llamar a todas las clases necesarias y definir variables
  27      */
  28     private Color color;
  29     private Pared[] pared;
  30     private int cantidad;
  31     private Lienzo lienzo;
  32     private Puntaje puntaje;
  33     private ArrayList<Calaveragg1> calaveras;
  34     private boolean caminando = true;
  35     private AudioStream colorColicion;
  36     private AudioStream CColicion;
  37 
  38     /**
  39      * Generar construtora de la Calaveragg1 para inicializar los parametros
  40      * @param x es la ubicacion en X
  41      * @param y es la posicion en Y
  42      * @param ancho es el ancho de la calavera
  43      * @param alto es el alto de la calavera
  44      * @param color es el color que tomas las calaberas
  45      * @param paredes es el causante de las coliciones entre calaberas y el
  46      * @param lienzo es una clase en la cual se muestra cada una de las clases graficas
  47      * @param calaveras es el arreglo de calaveras que usamos para jugar
  48      * @param puntaje  Clase puntaje para ir aumentando el puntaje X la eliminacion de cada calavera
  49      */
  50     public Calaveragg1(int x, int y, int ancho, int alto, Color color, Pared[] paredes, Lienzo lienzo, ArrayList<Calaveragg1> calaveras, Puntaje puntaje) {
  51         super(x, y, ancho, alto);
  52         this.color = color;
  53         this.pared = paredes;
  54         this.puntaje = puntaje;
  55         this.lienzo = lienzo;
  56         this.calaveras = calaveras;
  57     }
  58 
  59     /** Es el metodo para pintar la pared
  60      * @param g  es la clase base para todo contexto grafico
  61      *
  62      */
  63     public void paint(Graphics g) {
  64         if (visible) {
  65             //cabeza
  66             g.setColor(color);
  67             g.fillOval(x + 0 * ancho / 210, y + 0 * alto / 240, 210 * ancho / 210, 210 * alto / 240);
  68             //ojo derecho
  69             g.setColor(Color.BLACK);
  70             g.fillOval(x + 50 * ancho / 210, y + 110 * alto / 240, 30 * ancho / 210, 30 * alto / 240);
  71             //ojo izquierdo
  72             g.setColor(Color.BLACK);
  73             g.fillOval(x + 110 * ancho / 210, y + 110 * alto / 240, 30 * ancho / 210, 30 * alto / 240);
  74             //diente 1
  75             g.setColor(color);
  76             g.fillOval(x + 20 * ancho / 210, y + 180 * alto / 240, 50 * ancho / 210, 50 * alto / 240);
  77             //diente 2
  78             g.setColor(color);
  79             g.fillOval(x + 70 * ancho / 210, y + 190 * alto / 240, 50 * ancho / 210, 50 * alto / 240);
  80             // diente 3
  81             g.setColor(color);
  82             g.fillOval(x + 120 * ancho / 210, y + 180 * alto / 240, 50 * ancho / 210, 50 * alto / 240);
  83 
  84         }
  85     }
  86 
  87     /**retorna el color
  88      *
  89      */
  90     public Color getColor() {
  91         return color;
  92     }
  93 /**
  94  *
  95  * @param color Metodo para implmentarle el color a las calaveras
  96  */
  97     public void setColor(Color color) {
  98         this.color = color;
  99     }
 100 
 101             
 102 
 103     /** es el que por medio de unos hilos hace mover las calaveras */
 104     public synchronized void run() {
 105         for (; getVisible();) {
 106             if (caminando) {
 107                 decY(2);
 108 
 109                 for (int i = 0; i < Pared.length; i++) {
 110                     decY(1);
 111                     if (this.colisiona(pared[i]) == true) {
 112                     }
 113 
 114                 }
 115 
 116                 for (Calaveragg1 calaveragg1 : calaveras) {
 117                     if (this.colisiona(calaveragg1)) {
 118 
 119                         if (color == calaveragg1.getColor()) {
 120                             setVisible(false);
 121                             calaveragg1.setVisible(false);
 122                             try {
 123                                 colorColicion = new AudioStream(new FileInputStream("cañon.wav"));
 124                                 // Create an AudioStream object from the input stream.
 125 
 126                             } catch (FileNotFoundException ex) {
 127                                 Logger.getLogger(EscuchaMouse.class.getName()).log(Level.SEVERE, null, ex);
 128                             } catch (IOException ex) {
 129                                 Logger.getLogger(EscuchaMouse.class.getName()).log(Level.SEVERE, null, ex);
 130                             }
 131 
 132                             AudioPlayer.player.start(colorColicion);
 133 
 134                             puntaje.sumar();
 135 
 136                             if (cantidad > 200) {
 137                                 Ganar gano = new Ganar(300, 350, 100, 50);
 138                                 lienzo.add(gano);
 139                             }
 140 
 141                         } else {
 142                             caminando = false;
 143                             try {
 144                                 CColicion = new AudioStream(new FileInputStream("poto.wav"));
 145                                 // Create an AudioStream object from the input stream.
 146 
 147                             } catch (FileNotFoundException ex) {
 148                                 Logger.getLogger(EscuchaMouse.class.getName()).log(Level.SEVERE, null, ex);
 149                             } catch (IOException ex) {
 150                                 Logger.getLogger(EscuchaMouse.class.getName()).log(Level.SEVERE, null, ex);
 151                             }
 152 
 153                             AudioPlayer.player.start(CColicion);
 154                         }
 155                     }
 156 
 157                 }
 158 
 159                 try {
 160                     Thread.sleep(5);
 161 
 162                 } catch (InterruptedException ex) {
 163                     Logger.getLogger(Calaveragg1.class.getName()).log(Level.SEVERE, null, ex);
 164                 }
 165             }
 166 
 167             lienzo.repaint();
 168         }
 169     }
 170 
 171     /** metodo para agregar la suma de los puntajes */
 172     public void sumar() {
 173         cantidad += 200;
 174 
 175     }
 176 
 177     /** envia la suma en cantidad exacta
 178      */
 179     public int getCantidad() {
 180         return cantidad;
 181 
 182 
 183     }
 184     /** devuelve el valor de caminando para conocer si, si esta caminando o no  */
 185     public boolean caminanB = true;
 186 }
 187 

Java/Programas/SaveTheEarth/Calaveragg1.java (last edited 2010-10-28 11:05:40 by Nicolas Arcila)