Bueno, soy relativamente nuevo en esto de java, se realmente lo basico (modo consola) y quiero aprender a crear juegos en java.
Mi problema es que no puedo implementar el teclado (...)
Si alguien pudiese ayudarme con algun turorial o un ejemplo practico seria de gran ayuda.
He visto varios ejemplos pero ninguno me ayuda lo suficiente.
El que mas me ha gustado es el que sigue, me ayudo bastante y se ve muy practico, pero no entra en nada respecto al teclado:
Código:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Demo1 extends JComponent {
private final static int ANCHO = 320;
private final static int ALTO = 240;
private final static int DIAMETRO = 20;
private float x, y;
private float vx, vy;
public Demo1() {
setPreferredSize(new Dimension(ANCHO, ALTO));
x = 10;
y = 20;
vx = 300;
vy = 400;
}
public static KeyStroke getKeyStroke(char keyChar){
return(null);
}
private void fisica(float dt) {
x += vx * dt;
y += vy * dt;
if (vx < 0 && x <= 0 || vx > 0 && x + DIAMETRO >= ANCHO)
vx = -vx;
if (vy < 0 && y < 0 || vy > 0 && y + DIAMETRO >= ALTO)
vy = -vy;
}
public void paint(Graphics g) { //
g.setColor(Color.WHITE);
g.fillRect(0, 0, ANCHO, ALTO);
g.setColor(Color.RED);
g.fillOval(Math.round(x), Math.round(y), DIAMETRO, DIAMETRO);
}
private void dibuja() throws Exception {
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
paintImmediately(0, 0, ANCHO, ALTO);
}
});
}
public void cicloPrincipalJuego() throws Exception {
long tiempoViejo = System.nanoTime();
while (true) {
long tiempoNuevo = System.nanoTime();
float dt = (tiempoNuevo - tiempoViejo) / 1000000000f;
tiempoViejo = tiempoNuevo;
fisica(dt);
dibuja();
}
}
public static void main(String[] args) throws Exception {
JFrame jf = new JFrame("Demo1");
jf.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
jf.setResizable(false);
Demo1 demo1 = new Demo1();
jf.getContentPane().add(demo1);
jf.pack();
jf.setVisible(true);
demo1.cicloPrincipalJuego();
}
}
Si tienen un ejemplo mas claro mejor, o si pueden implementar el teclado en este lo agradeceria muchisimo por igual.