perdonen por tardar, ya resolvi el problema, tenia la parte que crea al keyListener comentado...
pero sigo teniendo otro problema, cuando lo ejecuto, a veces va i a veces no va, es decir, lo ejecuto i sin modificar nada, a la tercera funciona y cuando funciona, si cliko encima de la ventana deja de ir el KeyListener, alguien me ayuda?
os dejo la parte del codigo donde creo y añado el keyListener:
pero sigo teniendo otro problema, cuando lo ejecuto, a veces va i a veces no va, es decir, lo ejecuto i sin modificar nada, a la tercera funciona y cuando funciona, si cliko encima de la ventana deja de ir el KeyListener, alguien me ayuda?
os dejo la parte del codigo donde creo y añado el keyListener:
Código [Seleccionar]
package marcianos;
import java.awt.Canvas;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFrame;
/**
*
* @author srgank
*/
public class Juego {
private int ANCHO = 800;
private int ALTO = 600;
private JFrame ventana;
private Player player;
public Juego() {
ventana = new JFrame();
ventana.setBounds(0, 0, ALTO, ANCHO);
ventana.setVisible(true);
ventana.setDefaultLookAndFeelDecorated(true);
player = new Player(ventana);
Grafico grafico = new Grafico(player);
ventana.add(grafico);
añadirKeyListener(ventana);
grafico.run();
}
public void añadirKeyListener(JFrame frame) {
KeyListener key3 = new KeyListener() {
public void keyTyped(KeyEvent arg0) {
if (arg0.getKeyCode() == arg0.VK_LEFT) {
player.setDireccion("izquierda");
} else if (arg0.getKeyCode() == arg0.VK_RIGHT) {
player.setDireccion("derecha");
}
if (arg0.getKeyCode() == arg0.VK_SPACE) {
player.setDisparo(true);
System.out.println("Space");
}
}
public void keyPressed(KeyEvent arg0) {
if (arg0.getKeyCode() == arg0.VK_LEFT) {
player.setDireccion("izquierda");
} else if (arg0.getKeyCode() == arg0.VK_RIGHT) {
player.setDireccion("derecha");
}
if (arg0.getKeyCode() == arg0.VK_SPACE) {
player.setDisparo(true);
}
}
public void keyReleased(KeyEvent arg0) {
player.setDireccion("nulo");
if (arg0.getKeyCode() == arg0.VK_SPACE) {
player.setDisparo(true);
System.out.println("Space");
}
}
};
frame.addKeyListener(key3);
}
class Grafico extends Canvas implements Runnable {
private int ANCHO = 800;
private int ALTO = 600;
private Player player;
public Grafico(Player player) {
setBounds(0, 0, ALTO, ANCHO);
setVisible(true);
this.player = player;
}
@Override
public void paint(Graphics g){
player.mostrarPlayer(g);
player.disparar(g);
}
public void run() {
while(true){
repaint();
try {
Thread.sleep(25);
} catch (InterruptedException ex) {
Logger.getLogger(Grafico.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
}