Error "Exception in thread "main" java.lang.NullPointerException"
Publicado por Antiwarrior (6 intervenciones) el 31/03/2021 00:21:13
Soy nuevo en java y estoy haciendo un juego pequeño donde me da un fallo "Exception in thread "main" java.lang.NullPointerException", gracias de antemano. Les dejo el codigo:
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
package principal;
import principal.graficos.SuperficieDibujo;
import principal.graficos.Ventana;
import principal.maquinaestado.GestorEstados;
public class GestorPrincipal {
private boolean enFuncionamiento = false;
private String titulo;
private int ancho;
private int alto;
private SuperficieDibujo sd;
private Ventana ventana;
private GestorEstados ge;
private GestorPrincipal(final String titulo, final int ancho, final int alto) {
this.titulo = titulo;
this.ancho = ancho;
this.alto = alto;
}
public static void main(String[] args) {
GestorPrincipal gp = new GestorPrincipal("MS", 640, 340);
gp.iniciarJuego();
gp.iniciarBuclePrincipal();
}
private void iniciarJuego() {
enFuncionamiento = true;
inicializar();
}
private void inicializar() {
sd = new SuperficieDibujo(ancho, alto);
ventana = new Ventana(titulo, sd);
ge = new GestorEstados(sd);
}
private void iniciarBuclePrincipal() {
int aps = 0;
int fps = 0;
final int NS_POR_SEGUNDO = 1000000000;
final int APS_OBJETIVO = 60;
final double NS_POR_ACTUALIZACION = NS_POR_SEGUNDO / APS_OBJETIVO;
long referenciaActualizacion = System.nanoTime();
long referenciaContador = System.nanoTime();
double tiempoTranscurrido;
double delta = 0;
while (enFuncionamiento) {
final long inicioBucle = System.nanoTime();
tiempoTranscurrido = inicioBucle - referenciaActualizacion;
referenciaActualizacion = inicioBucle;
delta += tiempoTranscurrido / NS_POR_ACTUALIZACION;
while (delta >= 1) {
actualizar();
aps++;
delta--;
}
dibujar();
fps++;
if ((System.nanoTime() - referenciaContador) > NS_POR_SEGUNDO) {
System.out.println("FPS:" + fps + "APS:" + aps);
aps = 0;
fps = 0;
referenciaContador = System.nanoTime();
}
}
}
private void actualizar() {
sd.obtenerTeclado().actualizar();
ge.actualizar();
}
private void dibujar() {
sd.dibujar(ge);
}
}
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
package principal.herramientas;
import java.awt.Graphics;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsEnvironment;
import java.awt.Image;
import java.awt.Transparency;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import javax.imageio.ImageIO;
public class CargadorRecursos {
public static BufferedImage cargarImagenCompatibleOpaca(final String ruta) {
Image imagen = null;
try {
imagen = ImageIO.read(ClassLoader.class.getResource(ruta));
} catch (IOException e) {
e.printStackTrace();
}
GraphicsConfiguration gc = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration();
BufferedImage imagenAcelerada = gc.createCompatibleImage(imagen.getWidth(null), imagen.getHeight(null), Transparency.OPAQUE);
Graphics g = imagenAcelerada.getGraphics();
g.drawImage(imagen, 0, 0, null);
g.dispose();
return imagenAcelerada;
}
public static BufferedImage cargarImagenCompatibleTranslucida(final String ruta) {
Image imagen = null;
try {
imagen = ImageIO.read(ClassLoader.class.getResource(ruta));
} catch (IOException e) {
e.printStackTrace();
}
GraphicsConfiguration gc = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration();
BufferedImage imagenAcelerada = gc.createCompatibleImage(imagen.getWidth(null), imagen.getHeight(null), Transparency.TRANSLUCENT);
Graphics g = imagenAcelerada.getGraphics();
g.drawImage(imagen, 0, 0, null);
g.dispose();
return imagenAcelerada;
}
public static String leerArchivoTexto(final String ruta) {
String contenido = "";
InputStream entradaBytes = ClassLoader.class.getResourceAsStream(ruta);
BufferedReader lector = new BufferedReader(new InputStreamReader(entradaBytes));
String linea;
try {
while ((linea = lector.readLine()) != null) {
contenido += linea;
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (entradaBytes != null) {
entradaBytes.close();
}
if (lector != null) {
lector.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
return contenido;
}
}
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
package principal.maquinaestado.estados.juego;
import java.awt.Color;
import java.awt.Graphics;
import principal.herramientas.CargadorRecursos;
import principal.maquinaestado.EstadoJuego;
public class GestorJuego implements EstadoJuego{
private GestorMapa gestorMapa;
String texto = CargadorRecursos.leerArchivoTexto("/texto/prueba");
public void actualizar() {
}
public void dibujar(Graphics g) {
g.setColor(Color.white);
g.drawString(texto, 10, 10);
}
}
Valora esta pregunta


0