
Juego de laberinto en proceso
Publicado por Santiago (1 intervención) el 10/05/2017 06:26:46
Hola, soy estudiante nuevo de esta carrera y he decidido empezar a crear un pequeño videojuego de laberinto para reforzar mis conocimientos.
Mi problema es que he creado mi mapa en un String y lo he convertido a una matriz, y a la hora de dibujarlo en un panel puedo hacerlo con g.drawRect y sus parecidos, pero no he podido hacerlo con imágenes propias. He intendado con BufferedImage y luego usando g.drawImage, pero nunca me lee la imagen.
Pueden ayudarme? quiero poder dibujar cualquier imagen como lo hago con los cuadrados.
PD: Adjuntaré una imagen del código cuando uso g.drawRect, quiero que quede una imagen en la posición de cada cuadrado.

Mi problema es que he creado mi mapa en un String y lo he convertido a una matriz, y a la hora de dibujarlo en un panel puedo hacerlo con g.drawRect y sus parecidos, pero no he podido hacerlo con imágenes propias. He intendado con BufferedImage y luego usando g.drawImage, pero nunca me lee la imagen.
Pueden ayudarme? quiero poder dibujar cualquier imagen como lo hago con los cuadrados.
PD: Adjuntaré una imagen del código cuando uso g.drawRect, quiero que quede una imagen en la posición de cada cuadrado.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
import java.awt.Color;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import static javax.swing.JFrame.EXIT_ON_CLOSE;
import javax.swing.JPanel;
/**
*
* @author Santiago
*/
public class practica1 extends JPanel {
private BufferedImage img = null;
String Hola="*******************"+
"*****ssssssssssssssE"+
"*****s*************"+
"****ssssssssss*****"+
"****s**************"+
"****s********e*****"+
"*esssssss**********"+
"********ssssssss w*"+
"********ss*********"+
"****esssssssss*****"+
"***e*********s*****"+
"***s*********s*****"+
"***s*********s*****"+
"***s*********s*****"+
"***sssssssssss*****"+
"********s****w*****"+
"********s**********"+
"********p**********"+
"*******************";
char caracter[][]= new char[19][19];
public practica1(){
int contador=0;
for (int i = 0; i < caracter.length; i++) {
for (int j = 0; j < caracter[0].length; j++) {
caracter[i][j]=Hola.charAt(contador);
contador++;
}
}
}
public void paintComponent(Graphics g){
BufferedImage img = null;
try {
img = ImageIO.read(new File("muro.jpg"));
} catch (IOException ex) {
System.out.println("No se pudo leer la imagen");
}
int y=0;
g.setColor(Color.red);
for(int i=0;i<caracter.length;i++){
int x=0;
for(int j=0; j<caracter.length;j++){
g.drawImage(img, x, y, 30, 30, null);
x=x+30;
}
y=y+30;
}
}
public static void main(String[] args) {
practica1 e= new practica1();
JFrame ventana = new JFrame();
practica1 p = new practica1();
ventana.add(p);
ventana.setLocationRelativeTo(null);
ventana.setDefaultCloseOperation(EXIT_ON_CLOSE);
ventana.setSize(570,570);
ventana.setResizable(true);
ventana.setVisible(true);
}
}

Valora esta pregunta


0