problema con juego ....

Iniciado por vacio, 4 Septiembre 2007, 01:16 AM

0 Miembros y 1 Visitante están viendo este tema.

vacio

deseo hacer un juego de mesa en java utilizando swing pero tengo un problema, el juego debe ser de 75x50 casillas y lo que sucede es que son molestas tantas lineas asi que pense depronto en solucionar esto haciendo posible acercarse o alejarse de un punto en particular, alguien podria decirme como podria hacer esto, o alguna otra sugerencia para solucionar este problema.

y me surge otra duda, es posible hacer que una ficha ocupe mas de un panel?? por ejemplo una de 3x2?? en caso contrario que podria hacer??º

agradezco cualquier ayuda por adelantado.


import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;

public class TableroJuego extends JFrame implements MouseListener, MouseMotionListener {
   
    Dimension tamanoTablero = new Dimension(975, 650);
    JLayeredPane layeredPane;
    JPanel tablero;
    JPanel caja;
    JLabel chessPiece;
   
    public TableroJuego() {

        layeredPane = new JLayeredPane();
        getContentPane().add(layeredPane);
        layeredPane.setPreferredSize( tamanoTablero );
       
        tablero = new JPanel();
       
        layeredPane.add(tablero, JLayeredPane.DEFAULT_LAYER);
        tablero.setLayout( new GridLayout(50, 75) );
        tablero.setPreferredSize( tamanoTablero );
        tablero.setBounds(0, 0, tamanoTablero.width, tamanoTablero.height);
       
        addCuadricula();
    }
   
    public void addCuadricula() {
        for (int i = 0; i < 3750; i++) {
            caja = new JPanel( new BorderLayout() );
            tablero.add( caja, BorderLayout.CENTER );
            caja.setBorder(BorderFactory.createLineBorder(Color.black));
            caja.setBackground(Color.white);
        }
    }
   
    public static void main(String[] args) {
        JFrame.setDefaultLookAndFeelDecorated(true);
        JFrame frame = new TableroJuego();
        frame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE );

        frame.pack();
        frame.setResizable( false );
        frame.setLocationRelativeTo( null );
        frame.setVisible(true);
    }
   
    public void mousePressed(MouseEvent e){}
   
    public void mouseReleased(MouseEvent e){}
   
    public void mouseDragged(MouseEvent e){}
   
    public void mouseClicked(MouseEvent e){}
   
    public void mouseMoved(MouseEvent e){}
   
    public void mouseEntered(MouseEvent e){}
   
    public void mouseExited(MouseEvent e){}
}

Kpax

para que lo diseñes la idea esta es usar acciones del mouse, debes de tomar en donde se hizo el ultimo click y a partir de ello desarrollar un algoritmo para mostrar la parte de la imagen agrandada.

si programas a nivel de objeto creeme sera pan comido.
En este mundo una de dos

vacio

creo que no fui muy especifico, el problema en si es que no se que clases deberia consultar, solo necesito un punto de partida.

pd: el resto del codigo no lo puse porque crei que no era necesario.

Ragnarok

No he entendido cuál es la duda y por tanto no sé qué clases deberías consultar, pero aquí vienen todas muy bien explicadas: http://java.sun.com/docs/books/tutorial/uiswing/TOC.html
No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones

vacio

replanteo la pregunta: ¿como podria hacer para que el usuario pueda hacer un zoom de alguna parte de la ventana?? seria algo asi como "las lupas"  para acercar y alejar del visor de imagenes de windows.




egyware

mmm
interesante no se si existe tal codigo como pa aumentar usando swing pero si sobrescribes el metodo paint de algun panel o conteiner la clase graphics la transfomas en graphics 2d ahi si existe un metodo y puedes cer como si fuera una lupa


public void paint (Graphics g){
Graphics2D g2d = (Graphics2D) g;
g2d....
}


pero no creo que te sirva te mucho ya que usas compontenes swing o como dijo alguien capturas la posicion del click y creas un nuevo tablero por ejemplo 3x3 con las piezas de donde hiciste click en un dialog y mas grande, es solo que algo se te ocurra y tienes tu programa listo