miércoles, 11 de mayo de 2016

estructura basica de un juego de una pelota que robota en java



estructura basica de un juego de una pelota que robota en java

package ejemplos;

/**
*
* @author jarol
*/

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class Ejemplos extends JComponent {

private final static int ANCHO = 512;

private final static int ALTO = 384;

private final static int DIAMETRO = 20;

private float x, y;

private float vx, vy;

public Ejemplos() {

setPreferredSize(new Dimension(ANCHO, ALTO));

x = 10;

y = 20;

vx = 300;

vy = 400;

}

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("Ejemplos");

jf.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

jf.setResizable(false);

Ejemplos Ejemplos = new Ejemplos();

jf.getContentPane().add(Ejemplos);

jf.pack();

jf.setVisible(true);

Ejemplos.cicloPrincipalJuego();

}

}

No hay comentarios:

Publicar un comentario

ENTRADAS POPULARES