09/01/2015, 09:40
|
| | Fecha de Ingreso: noviembre-2009
Mensajes: 7
Antigüedad: 15 años Puntos: 0 | |
Crear juego en java Hola a todos, soy nuevo por aqui y estoy un poco desesperado.
Tengo que crear un juego que se basará en un tablero rectangular de casillas
donde cada casilla podra tener asignado un cuadrado o pieza de un color. Inicialmente el tablero se rellenara aleatoriamente con una serie de piezas.
Mas o menos como se muestra aqui[URL="http://prntscr.com/5qcrme"]http://prntscr.com/5qcrme[/URL]
tengo dos archivos:
Código:
import javax.swing.JFrame;
import java.awt.Graphics;
Código:
public class TestTablero {
public static void main(String[] args) {
Tablero t = new Tablero();
JFrame app = new JFrame("Tablero");
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
app.setBounds(0, 0, 440, 470);
app.add(t);
app.setVisible(true);
}
}
y el tablero
import java.awt.Color;
import java.util.Random; //genera el random
import java.awt.Graphics;
import java.awt.Font;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class Tablero extends JPanel {
//Aquí irían los atributos necesarios
//Constructores
Tablero() {
//El constructor debe tener los parámetros oportunos
//para inicializar el tablero y el juego
// Añadimos el 'escuchador' de ratón
addMouseListener(new MouseHandler());
}
//Métodos de la clase que implementan el juego: básicamente hacer una
//jugada, dibujar el estado del tablero y comprobar si la partida se acabó
//Método paint
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.BLACK);
//Verticales
g.drawLine(110, 15, 110, 315);
g.drawLine(160, 15, 160, 315);
g.drawLine(210, 15, 210, 315);
g.drawLine(260, 15, 260, 315);
g.drawLine(310, 15, 310, 315);
g.drawLine(360, 15, 360, 315);
g.drawLine(410, 15, 410, 315);
//Horizontales
g.drawLine(110, 15, 410, 15);
g.drawLine(110, 65, 410, 65);
g.drawLine(110, 115, 410, 115);
g.drawLine(110, 165, 410, 165);
g.drawLine(110, 215, 410, 215);
g.drawLine(110, 265, 410, 265);
g.drawLine(110, 315, 410, 315);
//Numeros filas
g.setFont(new Font("SansSerif", Font.PLAIN, 45));
g.setColor(Color.black);
g.drawString("1",40,60);
g.drawString("2",40,110);
g.drawString("3",40,160);
g.drawString("4",40,210);
g.drawString("5",40,260);
g.drawString("6",40,310);
//Numeros columnas
g.drawString("6",370,365);
g.drawString("5",320,365);
g.drawString("4",270,365);
g.drawString("3",220,365);
g.drawString("2",170,365);
g.drawString("1",120,365);
//Puntos
g.setFont(new Font("SansSerif", Font.PLAIN, 18));
g.drawString("Puntos: ", 126, 402);
//CUADRADO
g.setColor(Color.red);
g.fillRect(111,16, 49, 49);
Cuadrado c = new Cuadrado();
c.setX(161);
c.setY(16);
g.setColor(Color.blue);
g.fillRect(161,16, 49, 49);
//Aquí iría el código para pintar el estado del tablero
}
public void paintComponent1(Graphics g){
super.paintComponent(g);
//prueba
}
//Clase cuadrado
private class Cuadrado{
private int x;
private int y;
private char color;
public void setX(int xx){
xx = x;
}
public void setY(int yy){
yy = y;
}
public int getX(){
return x;
}
public int getY(){
return y;
}
public double setColor(){
double numero_color = Math.random()*6;
if(numero_color<=3.0){color = 'r';};
if(numero_color>3.0 && numero_color<=4.5){color = 'b';};
if(numero_color>4.5 && numero_color<6){color = 'g';};
return numero_color;
}
public char getColor(){
return color;
}
/** Random rand = new Random();
float r = rand.nextFloat();
float g = rand.nextFloat();
float b = rand.nextFloat();*/
}
//Clase privada para capturar los eventos del ratón
private class MouseHandler extends MouseAdapter {
public void mouseClicked (MouseEvent e) {
//Mostramos un diálogo con la posición del ratón
//para ver un ejemplo de cómo se obtienen las coordenadas
//donde se produjo el click
JOptionPane.showMessageDialog(null, String.format("Ratón %d,%d \n",e.getX(),e.getY()));
//Aquí irían las instrucciones para comprobar si el
//click del ratón se produjo en una posición correcta
//y hacer la jugada correspondiente
//Se pueden llamar a los métodos públicos de la clase
//Seguramente habrá que repintar el tablero si se realizó
//una jugada válida
repaint();
}
}
} De momento tan solo he sido capaz de pintar cuadrados, lineas y poco mas.
Tengo esto para generar colores aleatorios:
Código:
public double setColor(){
double numero_color = Math.random()*6;
if(numero_color<=3.0){color = 'r';};
if(numero_color>3.0 && numero_color<=4.5){color = 'b';};
if(numero_color>4.5 && numero_color<6){color = 'g';};
return numero_color;
}
public char getColor(){
return color;
}
Estoy un poco perdio y no se como seguir para poder aplicar esos colores que se generan aleatorios a mi cudrado y como generar posiciones aleatorias a mis cuadrados.
Un saludo y gracias |