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
