Calaveragg1.java

Categorías: CategoryJava | CategoryProgramacion

   1 package savetheearthsk;
   2 
   3 import java.awt.Color;
   4 import java.awt.Graphics;
   5 import java.util.ArrayList;
   6 import java.util.logging.Level;
   7 import java.util.logging.Logger;
   8 
   9 /**
  10  * Calaveragg1: Es una clase la cual contiuene un objeto grafico el cual se toma
  11  * como bala y/o objetivos a "destruir".
  12  * Hereda de ObjetoGrafico
  13  * Implementa caracteristicas de Runnable
  14  * @author Luisa Fernanda Rueda Herrera
  15  * @author George Sebastian Parra Macias
  16  */
  17 public class Calaveragg1 extends ObjetoGrafico implements Runnable {
  18 
  19     /**
  20      * Atributos enteros (constantes) de izquierda, centro, derecha, que designan la direccion de la calaveragg
  21      */
  22     private static final int izquierda = 0, centro = 1, derecha = 2;
  23     /**
  24      * Atributo privado de tipo Color guarda el color principal de la calaveragg 
  25      */
  26     private Color color;
  27     /**
  28      * Atributo privado de tipo Pared [] guarda un areglo de paredes para las coliciones
  29      */
  30     private Pared[] pared;
  31     /**
  32      * Atributo privado de tipo entero (int) que guarda el puntaje del jugador
  33      */
  34     private int cantidad;
  35     /**
  36      * Atributo privado de tipo Lienzo guarda el lienzo utilizado para dibujar los objetos
  37      */
  38     private Lienzo lienzo;
  39     /**
  40      * Atributo privado de tipo Puntaje que muestra el puntaje en el lienzo
  41      */
  42     private Puntaje puntaje;
  43     /**
  44      * Atributo privado de tipo ArrayList guarda un arreglo de calaverasgg
  45      */
  46     private ArrayList<Calaveragg1> calaveras;
  47     /**
  48      * Atributo privado de tipo Boolean nos dice si la calaveragg se esta moviendo
  49      */
  50     private boolean caminando = true;
  51     /**
  52      * Atributo privado de tipo Entero (int) cambiar ladireccion de la calaveragg
  53      */
  54     private int direccion;
  55     /**
  56      * Atributo privado que guarda un arreglo de tipo Pared de la parte inferior de la pntalla
  57      */
  58     private Pared[] pared1;
  59     /**
  60      * Atributo privado que guarda un arreglo de tipo Pared de la parte izquierda de la pantalla
  61      */
  62     private Pared[] pared2;
  63     /**
  64      * Atributo privado que guarda un arreglo de tipo Pared de la parte derecha de la pantalla
  65      */
  66     private Pared[] pared3;
  67     /**
  68      * 
  69      */
  70     private int velocidad;
  71 
  72     /**
  73      * Constructora de Calaveragg1
  74      * @param alto guarda la medida de la altura de la calaveragg
  75      * @param ancho guarda la medida del ancho de la calaveragg
  76      * @param calaveras guarda un arreglo de calaveragg
  77      * @param color guarda el color de calaveragg
  78      * @param lienzo mostrar la calaveragg
  79      * @param paredes para encerrar los demas objetos graficos
  80      * @param puntaje se le suma una cantidad cada ves que colisiona
  81      * @param x guarda la pocicion en el eje x  de la calaveragg
  82      * @param y guarda la pocicion en el eje y de la calaveragg
  83      */
  84     public Calaveragg1(int x, int y, int ancho, int alto, Color color, Pared[] paredes, Pared[] paredes1, Pared[] paredes2, Pared[] paredes3, Lienzo lienzo, ArrayList<Calaveragg1> calaveras, Puntaje puntaje, Configuracion configuracion) {
  85         /**
  86          * Atributos heredados de la superclase ObjetoGrafico que nos da  la pocicion, el alto y el ancho  de la calaveragg
  87          */
  88         super(x, y, ancho, alto);
  89         /**
  90          * asignacion de la variable color desde el parameto recibido color asigna la variable un color
  91          */
  92         this.color = color;
  93         /**
  94          * asignacion de la variable pared desde el parameto recibido pared
  95          */
  96         this.pared = paredes;
  97         /**
  98          * asignacion de la variable puntaje desde el parameto recibido puntaje
  99          */
 100         this.puntaje = puntaje;
 101         /**
 102          * asignacion de la variable lienzo desde el parameto recibido lienzo
 103          */
 104         this.lienzo = lienzo;
 105         /**
 106          * asignacion de la variable calaveras des de el parameto recibido calaveras
 107          */
 108         this.calaveras = calaveras;
 109         /**
 110          * asigna un valor a la variable direccion
 111          */
 112         direccion = 1;
 113         this.pared1 = paredes1;
 114         this.pared2 = paredes2;
 115         this.pared3 = paredes3;
 116         this.velocidad = configuracion.velocidadBala;
 117 
 118     }
 119 
 120     /**
 121      * Metodo grafico para dibujar la calaveragg en el lienzo
 122      */
 123     public void paint(Graphics g) {
 124         /**
 125          * Condicional para dibujar la calaveragg si el boolean es tru
 126          */
 127         if (visible) {
 128             /**
 129              * circulo grande
 130              */
 131             g.setColor(color);
 132             g.fillOval(x + 15 * ancho / 200, y + 30 * alto / 250, 180 * ancho / 200, 180 * alto / 250);
 133 
 134 
 135             /**
 136              *Pupila ojo pequeno
 137              */
 138             g.setColor(Color.BLACK);
 139             g.fillOval(x + 95 * ancho / 200, y + 75 * alto / 250, 10 * ancho / 200, 14 * alto / 250);
 140 
 141             /**
 142              * Pupila ojo grande
 143              */
 144             g.setColor(Color.BLACK);
 145             g.fillOval(x + 115 * ancho / 200, y + 65 * alto / 250, 13 * ancho / 200, 20 * alto / 250);
 146 
 147             /**
 148              * Linea ojo pequeno
 149              */
 150             g.setColor(Color.black);
 151             int[] linea1x = {
 152                 x + 80 * ancho / 200,
 153                 x + 95 * ancho / 200,};
 154             int[] linea1y = {
 155                 y + 150 * alto / 250,
 156                 y + 160 * alto / 250,};
 157             g.fillPolygon(linea1x, linea1y, 2);
 158 
 159             /**
 160              * Linea ojo grande
 161              */
 162             g.setColor(color);
 163             int[] linea2x = {
 164                 x + 95 * ancho / 200,
 165                 x + 122 * ancho / 200,};
 166             int[] linea2y = {
 167                 y + 157 * alto / 250,
 168                 y + 157 * alto / 250,};
 169             g.fillPolygon(linea2x, linea2y, 2);
 170 
 171             /**
 172              * Boca
 173              */
 174             g.setColor(color);
 175             int[] Bocax = {
 176                 x + 90 * ancho / 200,
 177                 x + 130 * ancho / 200,};
 178             int[] Bocay = {
 179                 y + 20 * alto / 250,
 180                 y + 20 * alto / 250,};
 181             g.fillPolygon(Bocax, Bocay, 2);
 182 
 183             /**
 184              * Cuadro
 185              */
 186             g.setColor(color);
 187             int[] Cuadrox = {
 188                 x + 123 * ancho / 200,
 189                 x + 133 * ancho / 200,
 190                 x + 133 * ancho / 200,
 191                 x + 155 * ancho / 200,
 192                 x + 155 * ancho / 200,
 193                 x + 144 * ancho / 200,};
 194             int[] Cuadroy = {
 195                 y + 31 * alto / 250,
 196                 y + 21 * alto / 250,
 197                 y + 21 * alto / 250,
 198                 y + 31 * alto / 250,
 199                 y + 30 * alto / 250,
 200                 y + 46 * alto / 250,};
 201             g.fillPolygon(Cuadrox, Cuadroy, 6);
 202 
 203             /**
 204              * Tira
 205              */
 206             g.setColor(color);
 207             int[] Tirax = {
 208                 x + 143 * ancho / 200,
 209                 x + 160 * ancho / 200,};
 210             int[] Tiray = {
 211                 y + 88 * alto / 250,
 212                 y + 70 * alto / 250,};
 213             g.fillPolygon(Tirax, Tiray, 2);
 214 
 215             /**
 216              * Estrella
 217              */
 218             g.setColor(color);
 219             int[] Estrellax = {
 220                 x + 150 * ancho / 200,
 221                 x + 162 * ancho / 200,
 222                 x + 154 * ancho / 200,
 223                 x + 159 * ancho / 200,};
 224             int[] Estrellay = {
 225                 y + 15 * alto / 250,
 226                 y + 19 * alto / 250,
 227                 y + 17 * alto / 250,
 228                 y + 23 * alto / 250,};
 229             g.fillPolygon(Estrellax, Estrellay, 4);
 230 
 231         }
 232     }
 233 
 234     /**
 235      * Debuelve el valor de la variable color
 236      *@return
 237      */
 238     public Color getColor() {
 239         return color;
 240     }
 241 
 242     /**
 243      *metodo para mover la calaveragg en la direccion que tenga asignada
 244      */
 245     public void run() {
 246         for (; getVisible();) {
 247             if (caminando) {
 248                 /**
 249                  * mueve la calaveragg en la direccion 0(izguierda)
 250                  */
 251                 if (direccion == izquierda) {
 252                     decY(2);
 253                     decX(2);
 254                     for (int i = 0; i < pared2.length; i++) {
 255                         if (this.colisiona(pared2[i]) == true) {
 256                             direccion = derecha;
 257                         }
 258                     }
 259                 } else if (direccion == centro) {
 260                     decY(2);
 261                     for (int i = 0; i < pared1.length; i++) {
 262                         decY(1);
 263                     }
 264                 } /**
 265                  * mueve la calaveragg en la direccion 2(derecha)
 266                  */
 267                 else if (direccion == derecha) {
 268                     decY(2);
 269                     incX(2);
 270                     for (int i = 0; i < pared3.length; i++) {
 271                         if (this.colisiona(pared3[i]) == true) {
 272                             direccion = izquierda;
 273                         }
 274 
 275                     }
 276                 }
 277                 /**
 278                  *comprueba  si la calaveragg disparada es del mismo color de la calaveragg con la que choca
 279                  */
 280                 for (Calaveragg1 calaveragg1 : calaveras) {
 281                     if (this.colisiona(calaveragg1)) {
 282                         if (color == calaveragg1.getColor()) {
 283                             setVisible(false);
 284                             calaveragg1.setVisible(false);
 285                             /**
 286                              * suma un puntaje al puntaje total
 287                              */
 288                             puntaje.sumar();
 289                         } else {
 290                             caminando = false;
 291                         }
 292                     }
 293                 }
 294                 try {
 295                     Thread.sleep(velocidad);
 296                 } catch (InterruptedException ex) {
 297                     Logger.getLogger(Calaveragg1.class.getName()).log(Level.SEVERE, null, ex);
 298                 }
 299                 lienzo.repaint();
 300             }
 301         }
 302     }
 303 
 304     /**
 305      * suma X puntos a al puntaje
 306      */
 307     public void sumar() {
 308         cantidad += 200;
 309 
 310     }
 311 
 312     /**
 313      * retorna el puntaje actual
 314      * @return cantidad
 315      */
 316     public int getCantidad() {
 317         return cantidad;
 318 
 319 
 320     }
 321     // public boolean caminanB = true;
 322 
 323     /**
 324      * cambia el valor de la direccion a la izguierda
 325      */
 326     public void irIzquierda() {
 327         direccion = izquierda;
 328     }
 329 
 330     /**
 331      * cambia el valor de la direccion a la derecha
 332      */
 333     public void irDerecha() {
 334         direccion = derecha;
 335     }
 336 
 337     /**
 338      * cambia el valor de la direccion al centro
 339      */
 340     public void irCentro() {
 341         direccion = centro;
 342     }
 343 
 344     /**
 345      * retorna la direccion actual de la calaveragg
 346      * @return direccion
 347      */
 348     public int getDireccion() {
 349         return direccion;
 350     }
 351     public boolean caminanB = true;
 352 }

Java/Programas/SaveTheEarthII/Calaveragg1.java (last edited 2010-10-28 11:33:43 by GeorgeParra)