1
2
3
4
5
6 import java.awt.Color;
7 import java.awt.Graphics;
8
9 public class Pinguino extends ObjetoGrafico{
10 private Lienzo lienzo;
11 private PoderDePinguino[] poderDePinguino;
12 private Thread[] hiloPoder;
13 private int numPod;
14 private FantasmaEvolucion[] fantasmasEvolucion;
15 private Fantasma[] fantasmas;
16 private Pared[] paredes;
17 private Comida[] comidas;
18 public Pinguino (int x, int y, int a, int e, Lienzo l, Pared[] pareds, Comida[] c) {
19 super (x, y, a, e);
20 lienzo = l;
21 paredes = pareds;
22 poderDePinguino = new PoderDePinguino[1000];
23 hiloPoder = new Thread[10000];
24 numPod = 0;
25 comidas = c;
26 }
27 public void paint (Graphics g){
28 if(visible){
29 g.setColor(Color.black);
30
31 g.fillOval(getPosX() + (int)(getAncho() * 0.5), getPosY() + (int)(getAlto() * 0), (int)(getAncho() * 1), (int)(getAlto() * 1));
32
33 g.fillArc(getPosX() + (int)(getAncho() * 0.040), getPosY() + (int)(getAlto() * 0.23), (int)(getAncho() * 0.58),(int)(getAlto() * 0.64), 2, 40);
34
35 g.fillArc(getPosX() + (int)(getAncho() * 1.4), getPosY() + (int)(getAlto() * 0.23), (int)(getAncho() * 0.58), (int)(getAlto() * 0.64), 145, 40);
36
37 g.setColor(Color.gray);
38
39 g.fillOval(getPosX() + (int)(getAncho() * 0.55), getPosY() + (int)(getAlto() * 0.29), (int)(getAncho() * 0.91), (int)(getAlto() * 0.71));
40
41 g.fillOval(getPosX() + (int)(getAncho() * 0.68), getPosY() + (int)(getAlto() * 0.03), (int)(getAncho() * 0.66), (int)(getAlto() * 0.32));
42
43 g.setColor(Color.white);
44
45 g.fillOval(getPosX() + (int)(getAncho() * 0.65), getPosY() + (int)(getAlto() * 0.3), (int)(getAncho() * 0.73), (int)(getAlto() * 0.72));
46
47 g.fillOval(getPosX() + (int)(getAncho() * 0.78), getPosY() + (int)(getAlto() * 0.12), (int)(getAncho() * 0.25), (int)(getAlto() * 0.19));
48
49 g.fillOval(getPosX() + (int)(getAncho() * 0.99), getPosY() + (int)(getAlto() * 0.15), (int)(getAncho() * 0.25), (int)(getAlto() * 0.18));
50
51 g.setColor(Color.black);
52
53 g.fillOval(getPosX() + (int)(getAncho() * 0.86), getPosY() + (int)(getAlto() * 0.17), (int)(getAncho() * 0.17), (int)(getAlto() * 0.13));
54
55 g.fillOval(getPosX() + (int)(getAncho() * 0.99), getPosY() + (int)(getAlto() * 0.18), (int)(getAncho() * 0.15), (int)(getAlto() * 0.12));
56
57 g.setColor(Color.gray);
58
59 g.fillOval(getPosX() + (int)(getAncho() * 0.92), getPosY() + (int)(getAlto() * 0.20), (int)(getAncho() * 0.08), (int)(getAlto() * 0.065));
60
61 g.fillOval(getPosX() + (int)(getAncho() * 1.02), getPosY() + (int)(getAlto() * 0.22), (int)(getAncho() * 0.080), (int)(getAlto() * 0.055));
62
63 g.setColor(Color.orange);
64
65 g.fillOval(getPosX() + (int)(getAncho() * 0.5), getPosY() + (int)(getAlto() * 0.9), (int)(getAncho() * 0.5), (int)(getAlto() * 0.14));
66
67 g.fillOval(getPosX() + (int)(getAncho() * 1.1), getPosY() + (int)(getAlto() * 0.9),(int)(getAncho() * 0.5), (int)(getAlto() * 0.14));
68
69 g.fillArc(getPosX() + (int)(getAncho() * 0.76), getPosY() + (int)(getAlto() * 0.28), (int)(getAncho() * 0.5), (int)(getAlto() * 0.35), 60, 60);
70 }
71 }
72 public void comer(){
73 for(int i = 0; i < comidas.length; i++){
74 if(colisiona(comidas[i])){
75
76 comidas[i].setVisible(false);
77
78 setAncho(getAncho() + 1);
79 }
80 }
81 }
82 public void disparar(){
83 poderDePinguino[numPod] = new PoderDePinguino(getPosX() + (getAncho() + 10) / 2, getPosY() + 12, 10, 10, lienzo, fantasmas, paredes, fantasmasEvolucion);
84 poderDePinguino[numPod].setVisible(true);
85 lienzo.add(poderDePinguino[numPod]);
86 hiloPoder[numPod] = new Thread(poderDePinguino[numPod]);
87 hiloPoder[numPod].start();
88 numPod++;
89 }
90 public void add(Fantasma[] f) {
91 fantasmas = f;
92 }
93 public void add(FantasmaEvolucion[] fantasmaEvolucions) {
94 fantasmasEvolucion = fantasmaEvolucions;
95 }
96 public void add(Pared[] pa) {
97 paredes = pa;
98 }
99
100 }