Alien.java
1 import java.awt.Color;
2 import java.awt.Graphics;
3 /**
4 * @author JUAN CARLOS VERANO ESTRADA UCATOLICA DE COLOMBIA.
5 * @author FERNANDO GOMEZ CRUZ U CATOLICA DE COLOMBIA
6 */
7 public class Alien extends ObjetoGrafico implements Runnable {
8 private Lienzo lienzo;
9 private Galaxy cañon;
10 private Obstaculo[]obstaculo;
11 private BalaAlien[] balaAlien;
12 private int numBal;
13 public Alien(int x,int y,int an,int al,Galaxy ca, Lienzo l,Obstaculo[] o){
14 super(x, y, an, al);
15 lienzo = l;
16 obstaculo=o;
17 numBal = 0;
18 cañon = ca;
19 balaAlien = new BalaAlien[1000];
20 }
21 public void paint (Graphics g){
22 if(getVisible()){
23 //cuerpo del alien
24 g.setColor(Color.yellow);
25 g.fillOval((int)posX*1,posY*1, ancho *1, alto*1 );
26 //ojo izquierdo
27 g.setColor(Color.black);
28 g.fillOval ( posX +(int) (ancho * 0.20), (posY+(int) (alto*0.39)), (int)(ancho * 0.18), (int)(alto * 0.15));
29 //ojo derecho
30 g.setColor(Color.black);
31 g.fillOval(posX + (int)(ancho * 0.65), (posY + (int)(alto*0.39)), (int)(ancho * 0.18), (int)(alto * 0.15));
32 //boca
33 g.setColor(Color.black);
34 g.fillRect (posX +(int) (ancho*0.30), (posY + (int) (alto * 0.69)), (int)(ancho * 0.40), (int)(alto * 0.05));
35 //antenaderecha
36 g.setColor(Color.yellow);
37 g.fillRect(posX + (int)(ancho*0.65), (posY+(int)(alto*0.00)), (int)(ancho * 0.10), (int)(alto * 0.30));
38 //antena izquierda
39 g.setColor(Color.yellow);
40 g.fillRect(posX+(int)(ancho*0.25),(posY+(int)(alto*0.00)), (int)(ancho * 0.10), (int)(alto * 0.30));
41 }
42 }
43
44 public void moverArriba(int dy){
45 posY -=dy;
46 }
47
48 public void run() {
49 for(;getVisible();){
50 //int posY = getPosY();
51 //if(cañon.getPosY() - posX > 0){
52 //setPosY(posY + 5);
53 moverAbajo(20);
54 moverDerecha(5);
55 if(getPosX() >700){
56 posX=0;
57 getPosX();
58 //if (getPosY()>270){
59 // posY=0;
60 //getPosX();
61
62 //}
63 }
64 else{
65 if (getPosY()>270){
66 posY=0;
67 getPosX();
68
69 }
70
71 }
72
73 //else{
74 // setPosY(posY + 5);
75 //moverDerecha(2);
76 //}
77 //if(posX > 730){
78 //posX = 0;
79 //}
80
81 if(Math.random() * 100 < 20){
82 if(cañon.getVisible()){
83 balaAlien[numBal] = new BalaAlien(getPosX(), getPosY(), 9, 9, lienzo,cañon,obstaculo);
84 balaAlien[numBal].setVisible(true);
85 lienzo.add(balaAlien[numBal]);
86 Thread hilo = new Thread(balaAlien[numBal]);
87 hilo.start();
88 numBal++;
89
90
91 lienzo.repaint();
92 }
93 }
94 try{Thread.sleep(900);}catch (Exception e){}
95 }
96 }
97 }
98
99
