Foros del Web » Programación para mayores de 30 ;) » Java »

Juegos con Java

Estas en el tema de Juegos con Java en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 12/04/2009, 12:07
 
Fecha de Ingreso: abril-2009
Mensajes: 4
Antigüedad: 15 años
Puntos: 0
Juegos con Java

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.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:25.