Archive for agosto 11, 2008

Ejercicio 3- Jueguito de la pelota

Bueno xic@s, aquí pongo mi ejercicio, que me ha costao’ lo suyo…, se me ha pasado el finde, lo siento!!

import java.awt.* ;

import java.awt.event.* ;

import javax.swing.* ;

public class Juego extends Jframe implements KeyListener{

JPanel p = new JPanel();

int barrax=200; //especifico la posición en x donde estará la barra

int barray;

int pelx; // posición en x de la pelota

int pely; // posición en y de la pelota

float dirx=1; // nos dirán si tiene que cambiar de dirección la pelota cuando rebote en las

float diry=1; // paredes

int puntos=-1; //se inicializa a –1 porque cuenta el toque de comienzo

boolean comienzo=false;

public Juego(){

super(“El Juego de la pelota”);

setSize (500,400);

getContentPane().add(panel);

pelx=250;

pely=this.getHeight()-60;

addKeyListener(this);

}

//Se dibujan la barra y la pelota, no sabía cómo hacerlo, busqué en API e Internet y lo hice así:

public void pintar(){

Graphics gr=panel.getGraphics(); //todo los dibujos que haga irán al panel

gr.clearRect(0,0,thisgetWidth(),this.getHeight()); //con esto se borra la estela que va dejando la

//pelota y la barra al moverse

gr.setColor(Color.yellow); //le doy color a la pelota

gr.fillOval((int)pelx,(int)pely,20,20); //así hago la pelota

gr.setColor(Color.black); //color del borde de la pelota

gr.drawOval((int)pelx,(int)pely,20,20); //borde de la pelota

gr.setColor(Color.blue); //le doy color a la barra

gr.fillRect((int)barrax,(int)barray,100,50); //así hago la barra

gr.setColor(Color.magenta); //color para la letra

gr.drawString(“Puntos Conseguidos:”,200,15);

gr.drawString(String.valueOf(puntos),325,15); //aquí irá el contador de puntos

gr.setColor(Color.cyan);

gr.drawString(“————————————————————————-”,1,21);

//esta línea va justo debajo de la puntuación y es donde rebotará la pelota arriba

} //Fin pintar()

public void mover(){

if(comienzo==true){

}else{

pelx=2*dirx;

pely=2*diry;

}

if(pely>this.getHeight()){ //cuando fallamos

comienzo=false; //paramos el juego

puntos=-1; // inicializamos los puntos

barrax=200; //pongo la barra en su sitio de origen

}

if((pely==barray)&&(barrax<pelx)&&(pelx<barrax+80)){

puntos++; // aumento los puntos cuando coincide barra y pelota

diry*=-1; //cambiamos sentido

}

if ((pelx<0)|| (pelx>this.getWidth()-20)){

dirx*=-1; //para que vaya en sentido opuesto

}

if(pely<20){

diry*=-1;

}

if(barrax>this.getWidth()-80){ //para que la barra no se salga de la ventana

barrax=this.getWidth()-80;

}

barray=this.getHeight()-50; // eje y por donde se mueve la barra

} //Fin mover()

public void mostrar(){

while(true){

this.mover();

this.pintar();

try{ // pongo esto para que la pelota no vaya tan rápido

Thread.sleep(45);

}catch(InterruptedException IE){}

}

} //Fin mostrar()

public static void main(String args){

Juego juego=newJuego();

juego.mostrar();

juego.setVisible(true);

juego.show();

juego.setDefaultCloseOperation(EXIT_ON_CLOSE);

juego.setResizable(true);

juego.requestFocus();

juego.pack();

} //Fin main

public void keyPressed(KeyEvent e){

if(comienzo==false){

if((e.getKeyCode()==KeyEvent.VK_LEFT)&&(barrax>0))

barrax–;

if((e.getKeyCode()==KeyEvent.VK_RIGHT)&&(barrax<(500-1)))

barrax++;

}

}

public void keyReleased(KeyEvent e){}

public void keyTyped(KeyEvent e){}

} // Fin clase Juego

Saludossss!!

Seguir

Get every new post delivered to your Inbox.