Así que me preguntaba soy nuevo en java, pero yo sé que mi camino alrededor de él, pero yo quería hacer un 2d juego de azulejo.
Ahora me enteré de que usted puede hacer esto con una Matriz 2d para hacer el mapa.
Pero, ¿cómo hacer que el mapa aparezca en la pantalla, JFrame, como de las imágenes?
Así que un ejemplo de la matriz/mapa aquí:

1111111111
1011011001
1001100011
0000100011
0000000000
2222222222

0 = blueSky.png
1 = cloud.png
2 = grass.png

Gracias!
EDITAR 2
Así que ahora tengo esto:

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

public class Game extends JFrame {

private static final long serialVersionUID = 1L;

    public static void main(String[] args) {
        ImageIcon sky = new ImageIcon ("/Users/pro/Desktop/sky.png");

        JPanel grid = new JPanel();
        grid.setLayout(new GridLayout(25, 25));
        for (int i = 0; i < 25; i++) {
            for (int n = 0; n < 25; n++) {
                grid.add(new JLabel(sky));
            }
        }
        JFrame frame = new JFrame("Map");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //frame.setPreferredSize(new Dimension(640, 400));
        frame.add(grid);
        frame.pack();
        frame.setVisible(true);
    }
}

esta impresiones de algunos de los azulejos con el cielo de la foto, pero ¿cómo puedo hacer la fila inferior de una imagen?

InformationsquelleAutor Jan Vos | 2011-07-29

2 Comentarios

  1. 5

    Me gustaría considerar la matriz 2D, como los no-GUI modelo, que los datos en sí es probable que, en algún archivo de datos, tal vez un archivo de texto, que no sería métodos para la lectura de los datos en que se celebrará por una matriz 2D de quizás enteros, quizás personalizadas clases de Células (de nuevo, aún no-GUI). A continuación, la interfaz gráfica de usuario tendría que interpretar el modelo y la visualización de los datos en algunos de manera lógica. Esto podría lograrse mediante la creación de un 2D de la cuadrícula de JLabels a cabo por un JPAnel que utiliza GridLayout y, a continuación, utilizar ImageIcons para contener las imágenes, y el icono de cada JLabel basado en el estado del modelo.

    Editar 1

    De modo que las posibles clases que se utilizan son:

    • TileType: una enumeración que asocia el concepto de baldosas con los números a cabo por el archivo de datos
    • TileCell: no-clase GUI, tiene un TileType campo, también pueden llevar a una Lista de elementos que se pueden encontrar en la celda (si el juego necesita este). Puede tener información acerca de sus vecinos.
    • TileCellGrid: no-clase GUI celebración de un 2D de la cuadrícula de TileCells.
    • GridDataIO: utilidad de la clase a leer y escribir fuera de la cuadrícula de datos a un archivo.
    • GameGrid: interfaz de usuario de la clase que se mantenga un GridLayout el uso de JPanel que tiene JLabels cuya ImageIcons mostrar las imágenes de la lista en su OP.

    Editar 2

    respecto a tu pregunta:

    Bien ¿cómo puedo ajustar la imagen a la derecha para everyLabel ?

    Me gustaría utilizar un observador/patrón observable y agregar una escucha para el modelo. Cuando los cambios de modelo que por lo tanto debe notificar a la interfaz gráfica de usuario o en la vista. A continuación, la vista de la solicitud de la matriz de datos, sería iterar a través de ella y cambiar la imagen de los iconos que necesitan cambiando a medida que se recorre la matriz.

    • Un poco tarde, pero veo que mis ideas son similares a aioobe del. 1+ a él!
    • Bien ¿cómo puedo ajustar la imagen a la derecha para everyLabel ?
    • por favor, consulte «Edición de 2» en mi respuesta anterior.
    • que Editar 2 cosita yo realmente no entiendo mucho de esto :p tal vez debido a mi falta de conocimiento del inglés o java, pero se puede hacer un lil ejemplo ? o es mucho trabajo ?
    • Es un poco de trabajo, si voy a hacerlo en un modelo-vista-control de la moda como a mi post original sugerido. Una idea es usar un Mapa, tales como un HashMap para asignar la enumeración de los ImageIcon.

Dejar respuesta

Please enter your comment!
Please enter your name here