Depredador.java.java

Categorías: CategoryJava | CategoryProgramacion

   1 /**
   2  * Depredador.java
   3  * 
   4  * @author Luis Alejandro Bernal Romero
   5  * 
   6  * Un pequeño juego en el que el jugador maneja con el  teclado un circulo verde, que es 
   7  * la presa; el un cuadrado rojo, el depredador, lo persigue hasta darle caza. El archivo 
   8  * debe estar en la raíz del directorio de trabajo. Esta versión no parpadea porque usa
   9  * la versión con doble buffer del motor.
  10  */
  11 package depredador3;
  12 
  13 import motorJuegos3.*;
  14 import java.awt.*;
  15 import java.awt.event.*;
  16 
  17 class Presa extends ObjetoMovil{
  18 
  19         public Presa(int x, int y) {
  20                 super(x, y);
  21         }
  22         
  23         public void paint(Graphics g){
  24                 g.setColor(Color.green);
  25                 g.fillOval(obtX(), obtY(), 50, 50);
  26         }
  27 }
  28 
  29 class Depredador extends ObjetoMovil implements Runnable{
  30         private static final int delta = 5;
  31         private ObjetoMovil presa;
  32         private MotorJuegos motor;
  33         
  34         public Depredador(int x, int y, ObjetoMovil p, MotorJuegos m) {
  35                 super(x, y);
  36                 presa = p;
  37                 motor = m;
  38         }
  39 
  40         public void paint(Graphics g) {
  41                 g.setColor(Color.red);
  42                 g.fillRect(obtX(), obtY(), 60, 60);
  43         }
  44 
  45         public void run() {
  46                 boolean atrapado = false;
  47                 while( ! atrapado){
  48                         int x = obtX();
  49                         if(presa.obtX() - x > 0){
  50                                 modX(x + 10);
  51                         }
  52                         else{
  53                                 modX(x - 10);
  54                         }
  55                         int y = obtY();
  56                         if(presa.obtY() - y > 0){
  57                                 modY(y + 10);
  58                         }
  59                         else{
  60                                 modY(y - 10);
  61                         }
  62                         if(obtY() - presa.obtY() < delta && obtX() - presa.obtX() < delta){
  63                                 presa.setVisible(false);
  64                                 atrapado = true;
  65                         }
  66                         try{ Thread.sleep(200); } catch (Exception e) {}
  67                 }
  68                 motor.finalizar();
  69         }
  70 }
  71 
  72 class EscuchaTeclasPresa implements KeyListener{
  73         ObjetoMovil presa;
  74         private Frame marco;
  75         
  76         public EscuchaTeclasPresa(Frame l, ObjetoMovil p) {
  77                 marco = l;
  78                 presa = p;
  79         }
  80         
  81         public void keyPressed(KeyEvent e) {
  82                 int tecla = e.getKeyCode();
  83                 switch (tecla) {
  84                 case KeyEvent.VK_UP:{
  85                                 int y = presa.obtY();
  86                                 y -= 10;
  87                                 if(y < 0){
  88                                         y = marco.getHeight();
  89                                 }
  90                                 presa.modY(y);
  91                 }
  92                 break;
  93                 case KeyEvent.VK_DOWN:{
  94                         int y = presa.obtY();
  95                         y += 10;
  96                         if(y > marco.getHeight()){
  97                                 y = 0;
  98                         }
  99                         presa.modY(y);
 100                 }
 101                 break;
 102                 case KeyEvent.VK_LEFT:{
 103                         int x = presa.obtX();
 104                         x -=10;
 105                         if(x < 0){
 106                                 x = marco.getWidth();
 107                         }
 108                         presa.modX(x);
 109                 }
 110                 break;
 111                 case KeyEvent.VK_RIGHT:{
 112                         int x = presa.obtX();
 113                         x += 10;
 114                         if(x > marco.getWidth()){
 115                                 x = 0;
 116                         }
 117                         presa.modX(x);
 118                 }
 119                 break;
 120                 }
 121         }
 122 
 123         public void keyReleased(KeyEvent e) {}
 124 
 125         public void keyTyped(KeyEvent e) {}
 126         
 127 }
 128 
 129 public class Principal {
 130 
 131         public static void main(String[] args) {
 132                 MotorJuegos motor = new MotorJuegos("Depredador III", Color.black);
 133                 Presa presa = new Presa(10, 50);
 134                 motor.add(presa);
 135                 Depredador depredador = new Depredador(480, 460, presa, motor);
 136                 motor.add(depredador);
 137                 Thread h = new Thread(depredador);
 138                 h.start();
 139                 EscuchaTeclasPresa escucha = new EscuchaTeclasPresa(motor, presa);
 140                 motor.addKeyListener(escucha);
 141                 motor.setSize(480, 640);
 142                 motor.setVisible(true);
 143                 
 144                 motor.iniciar();
 145         }
 146         
 147 }

Java/Programas/MotorJuegos/Depredador3/Depredador.java (last edited 2008-04-20 14:37:56 by localhost)