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