Fantasma.java

   1 /**
   2  * @author CARMEN ULDY SOTO SAENZ
   3  * @author CLAUDIA LILIANA MATEUS NOVA
   4  */
   5 import java.awt.Color;
   6 import java.awt.Graphics;
   7 
   8 public class Fantasma extends ObjetoGrafico implements Runnable{
   9     private Pinguino pinguino;
  10         private Lienzo lienzo;
  11         private Pared[] paredes;
  12     public Fantasma (int x, int y,int a, int e, Pinguino p, Lienzo l, Pinguino poPinguino, Pared[] pareds) {
  13                 super (x, y, a ,e);
  14                 pinguino = p;
  15                 lienzo = l;
  16                 paredes  = pareds;
  17         }
  18         public void paint (Graphics g){
  19                 if(visible){
  20                         g.setColor(Color.black);
  21                         //CUERPO
  22                         g.fillOval(getPosX() + (int)(getAncho() * 0.5), getPosY() + (int)(getAlto() * 0.5), (int)(getAncho() * 1), (int)(getAlto() * 1));
  23                         //MANO IZQUIERDA
  24                         g.fillArc(getPosX() + (int)(getAncho() * 0.04), getPosY() + (int)(getAlto() * 0.7), (int)(getAncho() * 0.58),(int)(getAlto() * 0.54), 2, 40);
  25                         //MANO DERECHA
  26                         g.fillArc(getPosX() + (int)(getAncho() * 1.4), getPosY() + (int)(getAlto() * 0.7), (int)(getAncho() * 0.58), (int)(getAlto() * 0.64), 145, 40);
  27                         //CACHO IZQUIERDO
  28                         g.fillArc(getPosX() + (int)(getAncho() * 0.6),  getPosY() + (int)(getAlto() * 0), (int)(getAncho() * 0.51), (int)(getAlto() * 0.64), 250, 40);
  29                         //CACHO DERECHO
  30                         g.fillArc(getPosX() + (int)(getAncho() * 0.9), getPosY() + (int)(getAlto() * 0), (int)(getAncho() * 0.51), (int)(getAlto() * 0.64), 250, 40);
  31                         
  32                         //CUERPO
  33                         g.setColor(Color.red);
  34                         g.fillOval(getPosX() + (int)(getAncho() * 0.57), getPosY() + (int)(getAlto() * 0.8), (int)(getAncho() * 0.91), (int)(getAlto() * 0.71));
  35                         
  36                         //OJO
  37                         g.setColor(Color.gray);
  38                         g.fillOval(getPosX() + (int) (getAncho() * 0.68), getPosY() + (int) (getAlto() * 0.53), (int)(getAncho() * 0.66), (int)(getAlto() * 0.32));
  39                         
  40                         g.setColor(Color.white);
  41                    //CUERPO
  42                         g.fillOval(getPosX() + (int) (getAncho() * 0.66), getPosY() + (int) (getAlto() * 0.81), (int)(getAncho() * 0.73), (int)(getAlto() * 0.72));
  43                         //OJO IZQUIERDO
  44                         g.fillOval(getPosX() + (int) (getAncho() * 0.77), getPosY() + (int) (getAlto() * 0.65), (int)(getAncho() * 0.25), (int)(getAlto() * 0.19));
  45                         //OJO DERECHO
  46                         g.fillOval(getPosX() + (int) (getAncho() * 1), getPosY() + (int) (getAlto() * 0.66), (int)(getAncho() * 0.25), (int)(getAlto() * 0.18));
  47                         
  48                         g.setColor(Color.black);
  49                    //OJO IZQUIERDO
  50                         g.fillOval(getPosX() + (int) (getAncho() * 0.87), getPosY() + (int) (getAlto() * 0.68), (int)(getAncho() * 0.17), (int)(getAlto() * 0.13));
  51                       //OJO DERECHO
  52                         g.fillOval(getPosX() + (int) (getAncho() * 1), getPosY() + (int) (getAlto() * 0.69), (int)(getAncho() * 0.15), (int)(getAlto() * 0.12));
  53             
  54                         g.setColor(Color.red);
  55                   //OJO IZQUIERDO
  56                         g.fillOval(getPosX() + (int) (getAncho() * 0.92), getPosY() + (int) (getAlto() * 0.71), (int)(getAncho() * 0.1), (int)(getAlto() * 0.065));
  57                         //OJO DERECHO
  58                         g.fillOval(getPosX() + (int) (getAncho() * 1.04), getPosY() + (int) (getAlto() * 0.721), (int)(getAncho() * 0.080), (int)(getAlto() * 0.055));
  59             
  60                   //PRETINA
  61                         g.setColor(Color.orange);
  62                         g.fillArc(getPosX() + (int)(getAncho() * 0.54), getPosY() + (int)(getAlto() * 0.8), (int)(getAncho() * 0.95), (int)(getAlto() * 0.71), 180, 180);
  63                         
  64                  //CALZON
  65                         g.setColor(Color.black);
  66                         g.fillArc(getPosX() + (int)(getAncho() * 0.56) , getPosY() + (int)(getAlto() * 0.99), (int)(getAncho() * 0.91), (int)(getAlto() * 0.5), 180, 180);
  67                         
  68                         g.setColor(Color.orange);
  69                         //PIE IZQUIERDO
  70                         g.fillOval(getPosX() + (int)(getAncho() * 0.5), getPosY() + (int)(getAlto() * 1.42), (int)(getAncho() * 0.5), (int)(getAlto() * 0.14));
  71                         // PIE DERECHO
  72                         g.fillOval(getPosX() + (int)(getAncho() * 1.05), getPosY() + (int)(getAlto() * 1.42), (int)(getAncho() * 0.5), (int)(getAlto() * 0.14));
  73                         //NARIZ
  74                         g.fillArc(getPosX() + (int)(getAncho() * 0.76), getPosY() + (int)(getAlto() * 0.8), (int)(getAncho() * 0.5), (int)(getAlto() * 0.35), 60, 60);
  75                         
  76                         }
  77         }
  78         public void explotar(Graphics g){
  79                 g.setColor(Color.orange);
  80                 g.fillOval(getPosX() + (int)(getAncho() * 0),  getPosY() + (int)(getAlto() * 0), (int)(getAncho() * 0),  (int)(getAlto() * 0));                 
  81     }    
  82         
  83 
  84         public void run(){
  85                 for (;;){
  86                         if (colisiona(pinguino)){
  87                                 setVisible(true);
  88                                 pinguino.setVisible(false);
  89                         }
  90                         for(int i = 0; i < paredes.length; i++){
  91                                 if(colisiona(paredes[i])){
  92                                         setVisible(true);
  93                                         paredes[i].setVisible(true);
  94                                 }               
  95                     }
  96                         int x = getPosX();
  97                         if (pinguino.getPosX() - x > 0){
  98                                 setPosX(x + 10);
  99                                 
 100                         }
 101                         else{
 102                                 setPosX(x - 10);
 103                         }
 104                         int y=getPosY();
 105                         if (pinguino.getPosY() - y > 0){
 106                                 setPosY(y + 10);
 107                         }
 108                         else{
 109                                 setPosY(y - 10);
 110                         }
 111                         lienzo.repaint();
 112                         try{Thread.sleep(3000);}catch(Exception e){}
 113           }
 114    }
 115 }

CategoryJava | CategoryProgramacion


CategoryProgramacion

Java/Programas/MazeDallcu/Fantasma.java (last edited 2008-11-13 13:18:48 by UldySoto)