Foro de elhacker.net

Programación => Java => Mensaje iniciado por: vacio en 4 Septiembre 2007, 01:16 am



Título: problema con juego ....
Publicado por: vacio en 4 Septiembre 2007, 01:16 am
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.

Código:
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){}
}


Título: Re: problema con juego ....
Publicado por: Kpax en 4 Septiembre 2007, 15:59 pm
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.


Título: Re: problema con juego ....
Publicado por: vacio en 4 Septiembre 2007, 16:30 pm
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.


Título: Re: problema con juego ....
Publicado por: Ragnarok en 4 Septiembre 2007, 22:36 pm
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


Título: Re: problema con juego ....
Publicado por: vacio en 12 Septiembre 2007, 04:44 am
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.





Título: Re: problema con juego ....
Publicado por: egyware en 13 Septiembre 2007, 18:50 pm
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

Código:
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