Tiburon.java

   1 
   2 /**
   3 *@ Andrea Forero andreita_9009@hotmail.com
   4 *@ Claudia Leon claudialeon18@hotmail.com
   5 *@ Erika Santana eesantana61@hotmail.com
   6 **/
   7 
   8 
   9 import java.awt.Color;
  10 import java.awt.Graphics;
  11 public class Tiburon extends ObjetoGrafico implements Runnable {
  12         /**
  13          * 
  14          */
  15         private static final long serialVersionUID = 1L;
  16         private Lienzo lienzo;
  17         private Fish fish;
  18         private LineVer linever[];
  19         public static final int arriba = 0, abajo = 1, izquierda = 2, derecha = 3;
  20         private int direccion = izquierda;
  21         public Tiburon ( int x, int y,int an, int al,Lienzo l, Fish f, LineVer l1[]){
  22                 super(x,y,an,al);
  23                 lienzo=l;
  24                 fish=f;
  25                 linever=l1;
  26         }
  27         public void paint(Graphics g){
  28                 switch (direccion) {
  29                 case izquierda:
  30                 g.setColor( Color.white);
  31                 g.fillOval(getPosX()+getAncho()/2, getPosY()+getAlto()/3, getAncho(),getAlto());
  32                 // Trompa
  33                 g.setColor(Color.gray);
  34                 g.fillOval(getPosX()+getAncho()/3 ,getPosY()+getAlto()/3,getAncho()*4/3, getAlto()*2/3);
  35                 //
  36                 g.setColor(Color.black);
  37                 g.fillOval(getPosX()+getAncho()*1/2,getPosY()+getAlto()*2/3,getAncho()/12,getAlto()/12);
  38                 g.setColor(Color.black);
  39                 g.fillRect(getPosX()+getAncho()*2/3,getPosY()+getAlto()*5/6, getAncho()*1/24,getAlto()*1/5);
  40                 g.setColor(Color.black);
  41                 g.fillRect(getPosX()+getAncho()*3/4,getPosY()+getAlto()*5/6, getAncho()*1/24,getAlto()*1/5);
  42                 g.setColor(Color.black);
  43                 g.fillRect(getPosX()+getAncho()*5/6,getPosY()+getAlto()*5/6, getAncho()*1/24,getAlto()*1/5);
  44                 g.setColor(Color.gray);
  45                 int x[] = {getPosX()+getAncho(), getPosX()+getAncho(), getPosX() + getAncho() /2};
  46                 int y[] = {getPosY(), getPosY() + (getAlto()/2), getPosY() + getAlto() / 2};
  47             g.fillPolygon(x, y, 3);
  48             g.setColor(Color.gray);
  49             int x1[] = {getPosX()+getAncho()*5/3, getPosX()+getAncho()*5/3, getPosX()+getAncho()*4/3};
  50                 int y1[] = {getPosY()+getAlto()*1/3, getPosY()+getAlto()*4/3, getPosY()+ getAlto()*5/6};
  51             g.fillPolygon(x1,y1, 3); 
  52             break;
  53                 case derecha:
  54                         g.setColor( Color.white);
  55                         g.fillOval(getPosX()+getAncho()/2, getPosY()+getAlto()/3, getAncho()*5/4,getAlto());
  56                         g.setColor(Color.gray);
  57                         g.fillOval(getPosX()+getAncho()/3 ,getPosY()+getAlto()/3,getAncho()*5/3, getAlto()*2/3);
  58                         g.setColor(Color.black);
  59                         g.fillOval(getPosX()+getAncho()*3/2,getPosY()+getAlto()*2/3,getAncho()/12,getAlto()/12);
  60                         g.setColor(Color.black);
  61                         g.fillRect(getPosX()+getAncho()*7/6,getPosY()+getAlto()*5/6, getAncho()*1/24,getAlto()*1/5);
  62                         g.setColor(Color.black);
  63                         g.fillRect(getPosX()+getAncho()*4/3,getPosY()+getAlto()*5/6, getAncho()*1/24,getAlto()*1/5);
  64                         g.setColor(Color.black);
  65                         g.fillRect(getPosX()+getAncho()*5/4,getPosY()+getAlto()*5/6, getAncho()*1/24,getAlto()*1/5);
  66                         g.setColor(Color.gray);
  67                         int x2[] = {getPosX()+getAncho()*3/4, getPosX()+getAncho()*3/4, getPosX()+getAncho()*5/3};
  68                         int y2[] = {getPosY(), getPosY() + (getAlto()/2), getPosY() + getAlto() / 2};
  69                     g.fillPolygon(x2, y2, 3);
  70                     g.setColor(Color.gray);
  71                     int x3[] = {getPosX()+getAncho()*1/3, getPosX()+getAncho()*1/3, getPosX()+getAncho()*3/4};
  72                         int y3[] = {getPosY()+getAlto()*1/3, getPosY()+getAlto()*5/4, getPosY()+ getAlto()*3/4};
  73                     g.fillPolygon(x3,y3, 3);    
  74                         break;
  75                 case abajo:
  76                         g.setColor( Color.white);
  77                         g.fillOval(getPosX()+getAncho()/2, getPosY()+getAlto()/3,getAlto(),getAncho());
  78                         g.setColor(Color.gray);
  79                         g.fillOval(getPosX()+getAncho()*2/3 ,getPosY()+getAlto()*1/16, getAlto()*2/3,getAncho()*4/3);
  80                         /*ojo*/
  81                         g.setColor(Color.black);
  82                         g.fillOval(getPosX()+getAncho()*3/4,getPosY()+getAlto()*5/2,getAncho()/12,getAlto()/12);
  83                         /*branqueas*/
  84                         g.setColor(Color.black);
  85                         g.fillRect(getPosX()+getAncho()*2/3,getPosY()+getAlto()*2, getAncho()*1/12,getAlto()*1/24);
  86                         g.setColor(Color.black);
  87                         g.fillRect(getPosX()+getAncho()*2/3,getPosY()+getAlto()*9/5, getAncho()*1/12,getAlto()*1/24);
  88                         g.setColor(Color.black);
  89                         g.fillRect(getPosX()+getAncho()*2/3,getPosY()+getAlto()*5/3, getAncho()*1/12,getAlto()*1/24);
  90                         /*aleta*/
  91                         g.setColor(Color.gray);
  92                         int x6[] = {getPosX()+getAncho()*5/6, getPosX()+getAncho()*5/6, getPosX()+getAncho()*7/6};
  93                         int y6[] = {getPosY()+getAlto()*2, getPosY()+getAlto(), getPosY() + getAlto()};
  94                         g.fillPolygon(x6, y6, 3);
  95                         /*cola*/
  96                         g.setColor(Color.gray);
  97                     int x5[] = {getPosX()+getAncho(), getPosX()+getAncho()*1/2, getPosX()+getAncho()*3/4};
  98                         int y5[] = {getPosY()+getAlto()*1/10, getPosY()+getAlto()*1/10, getPosY()+ getAlto()*3/4};
  99                     g.fillPolygon(x5,y5, 3); 
 100                     
 101                         break;
 102                 case  arriba:
 103                         g.setColor( Color.white);
 104                         g.fillOval(getPosX()+getAncho()/2, getPosY()+getAlto()/3,getAlto(),getAncho());
 105                         g.setColor(Color.gray);
 106                         g.fillOval(getPosX()+getAncho()*2/3 ,getPosY()+getAlto()*1/16, getAlto()*2/3,getAncho()*4/3);
 107                         /*ojo*/
 108                         g.setColor(Color.black);
 109                         g.fillOval(getPosX()+getAncho()*3/4,getPosY()+getAlto()*2/3,getAncho()/12,getAlto()/12);
 110                         /*branqueas*/
 111                         g.setColor(Color.black);
 112                         g.fillRect(getPosX()+getAncho()*2/3,getPosY()+getAlto()*5/4, getAncho()*1/12,getAlto()*1/24);
 113                         g.setColor(Color.black);
 114                         g.fillRect(getPosX()+getAncho()*2/3,getPosY()+getAlto()*4/3, getAncho()*1/12,getAlto()*1/24);
 115                         g.setColor(Color.black);
 116                         g.fillRect(getPosX()+getAncho()*2/3,getPosY()+getAlto()*7/6, getAncho()*1/12,getAlto()*1/24);
 117                         g.setColor(Color.gray);
 118                         int x8[] = {getPosX()+getAncho()*5/6, getPosX()+getAncho()*5/6, getPosX()+getAncho()*7/6};
 119                         int y8[] = {getPosY()+getAlto()*5/6, getPosY()+getAlto()*2, getPosY() + getAlto()*2};
 120                         g.fillPolygon(x8, y8, 3);
 121                         g.setColor(Color.gray);
 122                     int x9[] = {getPosX()+getAncho(), getPosX()+getAncho()*1/2, getPosX()+getAncho()*2/3};
 123                         int y9[] = {getPosY()+getAlto()*10/3, getPosY()+getAlto()*10/3, getPosY()+ getAlto()*7/3};
 124                     g.fillPolygon(x9,y9, 3);  
 125                         default:
 126                                 break;
 127                         }
 128                         }
 129         
 130         public void setDireccion(int dir) {
 131                 direccion = dir;
 132         }
 133         public void run() {
 134                 for(;;){
 135                         if(getPosX()<=450 && getPosY() > 110 && getPosX() > 80 && getPosY() < 339 && (getPosX() <= 450 || getPosY() < 339)){
 136                                 setDireccion(arriba);
 137                         }
 138                         else if(getPosY() <= 110 && getPosX() > 80 && getPosY() < 339 && (getPosX() <= 450 || getPosY() < 339)){
 139                                 setDireccion(izquierda);
 140                         }
 141                         else if(getPosX() <= 80 && getPosY() < 339 && (getPosX() <= 450 || getPosY() < 339)){
 142                                 setDireccion(abajo);
 143                         }
 144                         else if (getPosY() >= 339 && (getPosX() <= 450 || getPosY() < 339)) {
 145                                 setDireccion(derecha);
 146                         }
 147                         else if (getPosX() > 450 && getPosY() >= 339) {
 148                                 setDireccion(arriba);
 149                         } 
 150                         switch (getDireccion()) {
 151                         case izquierda:
 152                                 decX(10);
 153                                 break;
 154                         case derecha:
 155                                 incX(10);
 156                                 break;
 157                         case arriba:
 158                                 decY(10);
 159                                 break;
 160                         case abajo:
 161                                 incY(10);
 162                                 break;
 163                         }
 164                         if (colisiona(fish)){
 165                                 fish.setDireccion(Fish.derecha);
 166                         fish.setPosX(50);
 167                         fish.setPosY(260);
 168                         
 169                         }
 170                         lienzo.repaint();
 171                         try{
 172                                 Thread.sleep(60);
 173                         }
 174                         catch (InterruptedException e) {
 175                         }
 176                 }
 177         }
 178         public int getDireccion() {
 179                 return direccion;
 180         }
 181 }

CategoryJava | CategoryProgramacion


CategoryProgramacion

Java/PealsFish/Tiburon.java (last edited 2009-05-20 14:07:36 by AndreaClaudiaErika)