martes, 10 de febrero de 2009

Seguimiento del ejemplito que postie

Ahora para que ya postie esto tienen que pasar a la siguiente fase que es aleatoriamente pintar el cubo dentro del panel.

Después de hacer eso juguemos a enviar pares de cubos comenzando desde la coordenada (0,0), y igual manera que el cubo de movimiento aleatorio hagando con estos pares sin salirse del panel.

Espero que esto les ayude

Seguire postiando pero ustedes ocupenlo para los cursos que dan si es que estan con grupos que comienzan a jugar con JAVA.

Generar Color para el cubo aleatoriamente

Este código que estoy posteando sirve para pintar un formulario, encima un panel y depués un canvas y en su interior de este una imagén.
La imagén que se pinta es de forma aleatoria es decir por medio de un random se hace la elección de que color de cubo se pinta en el canvas.

De acuero al valor entero que regrese el random es el nombre del archivo que se quiere guardar en la variable col que es de tipo String.

public String colorCubo() {
valC = valorColor();
if (valC == 0) { col = "blue.png";
} else if (valC == 1) { col = "green.png";
} else if (valC == 2) { col = "pink.png";
} else if (valC == 3) { col = "red.png";
} else if (valC == 4) { col = "yellow.png";
} else {
colorCubo();
}
return col;
}

Para que se ejecute el randon unicamente se manda ha llamar este metodo y busca el valor hasta el límite que es 5.

public int valorColor() {
int auxC;
Random rc = new Random();
auxC = rc.nextInt(5);
return auxC;

}

Clase Cubo

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package test;

import java.awt.Canvas;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;

/**
*
* @author cvleonardo
*/
public class Cubo extends Canvas {

protected BufferedImage sprite;
private int valC;
String col = "";
String colorCubo = "";
public String color = "";
private String[] imagen = {color};
private int altoCubo;
private int anchoCubo;
private int posX;
private int posY = 31;

public Cubo(int posX, int posY, String colorCubo) {
this.posX = posX;
this.posY = posY;
this.colorCubo = colorCubo;
imagen[0] = color;
int pos = 0;
cargaSprite(imagen[pos]);
anchoCubo = sprite.getHeight();
altoCubo = sprite.getWidth();

}

protected final void cargaSprite(String imagen) {
try {
java.net.URL url = getClass().getClassLoader().getResource("res/" + colorCubo);
sprite = ImageIO.read(url);

} catch (java.net.MalformedURLException e) {
e.printStackTrace();

} catch (java.io.IOException e) {
e.printStackTrace();

}

}

public void paintCubo(Graphics g) {
g.drawImage(sprite, posX, posY, this);
}
}

Clase ContenedorTablero

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package test;

import java.awt.Canvas;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.image.BufferStrategy;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;
import java.util.Vector;
import javax.imageio.ImageIO;
import javax.swing.JPanel;

/**
*
* @author cvleonardo
*/
public class ContenedorTablero extends Canvas {

private JPanel panelTablero;
protected BufferedImage sprite;
private BufferStrategy strategy;
private Vector cub;
public int posX = 0, valX, possX;
public int posY = 0, valY;
public int valC;
private Cubo cubo;
public String col = "";
public String colorCubo = "";

public ContenedorTablero(JPanel panelTablero) {
this.panelTablero = (JPanel) panelTablero;
setBounds(0, 0, 192, 414);
panelTablero.setPreferredSize(new Dimension(192, 414));
panelTablero.add(this);
requestFocusInWindow();
createBufferStrategy(2);
strategy = getBufferStrategy();
cub = new Vector();

}

public void paintTablero() {
Graphics g = strategy.getDrawGraphics(); // Corresponde al double buffer
try {
java.net.URL url = getClass().getClassLoader().getResource("res/fondo.png");
sprite = ImageIO.read(url);
g.drawImage(sprite, 0, 0, this);

} catch (IOException ex) {
ex.printStackTrace();

}

colorCubo = colorCubo();
cubo = new Cubo(32, 32, colorCubo);
cub.add(cubo);


for (Cubo c : cub) {
c.paintCubo(g);
}
strategy.show();

}

public String colorCubo() {
valC = valorColor();
if (valC == 0) {
col = "blue.png";
} else if (valC == 1) {
col = "green.png";
} else if (valC == 2) {
col = "pink.png";
} else if (valC == 3) {
col = "red.png";
} else if (valC == 4) {
col = "yellow.png";
} else {
colorCubo();
}
return col;

}

public int valorColor() {
int auxC;
Random rc = new Random();
auxC = rc.nextInt(5);
return auxC;

}
}

Clase Animacion

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package test;

/**
*
* @author cvleonardo
*/
public class Animacion {

private javax.swing.JPanel panelTablero;
private javax.swing.JFrame frame;
public int _PECES = 2;
ContenedorTablero conTab;

public Animacion() {
frame = new javax.swing.JFrame();
initComponents();

}

private void initComponents() {
panelTablero = new javax.swing.JPanel();
frame.getContentPane().setLayout(null);
frame.setResizable(false);
java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
frame.setBounds((screenSize.width - 961) / 2, (screenSize.height - 678) / 2, 192, 414);
frame.setVisible(true);
frame.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
panelTablero.setLayout(null);
frame.getContentPane().add(panelTablero);
panelTablero.setBounds(0, 0, 192, 414);

conTab = new ContenedorTablero(panelTablero);
conTab.paintTablero();

}

public static void main(String args[]) {
new Animacion();
}
}

Paquete para el programa

Desarrollen este Empaquetamiento