Problemas envolvendo Threads

Bem, meu problema todo começou com um bendido “spritesheet”, fui tentando de tudo até conseguir retirar o erro, chegou um momento em que eu consegui, o problema é que outro erro apareceu…
Eis o que o erro fala “Exception in thread “Thread-0” java.lang.NullPointerException
at com.leonardofoda.main.Game.tick(Game.java:93)
at com.leonardofoda.main.Game.run(Game.java:127)
at java.base/java.lang.Thread.run(Thread.java:834)”

para facilitar todo o processo, vou colocar apenas o método construtor.
Sim, eu já renomeei algumas classes, não deu certo. Sim, a foto está no local certo. Já tentei instanciar a classe dentro do método, não mudou nada.
Eis o código:

" private static final long serialVersionUID = 1L;
public static JFrame frame;
private boolean isRunning = true;
private Thread thread;
private final int WIDTH = 160;
private final int HEIGHT = 120;
private final int SCALE = 3;
private BufferedImage image;
public List entities;
public Spritesheet spritesheet;
public ArrayList sheet = new ArrayList<>();

public Game(){
	
	
	this.setPreferredSize(new Dimension(WIDTH*SCALE,HEIGHT*SCALE));
	image = new BufferedImage(WIDTH,HEIGHT, BufferedImage.TYPE_INT_RGB);
	frame = new JFrame();
	frame.add(this);
	frame.setResizable(true);
	frame.pack();
	frame.setLocationRelativeTo(null);
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	frame.setVisible(true);
	//iniciando objetos\\
	entities = new ArrayList<Entity>();
		
	spritesheet = new Spritesheet("/spritesheet.png");
	Player player = Player(0,0,16,16, spritesheet.getSprite(33, 0, 16,16));
    entities.add(player);	
	}"

Faltando a palavra “new” para instanciar o objeto.

Você não está com problema de Threads.
Tens que aprender a interpretar um stack trace, vamos lá, você tem o seguinte stack trace:

Exception in thread "Thread-0" java.lang.NullPointerException
    at com.leonardofoda.main.Game.tick(Game.java:93)
    at com.leonardofoda.main.Game.run(Game.java:127)
    at java.base/java.lang.Thread.run(Thread.java:834)

Agora vamos separar cada parte dele e explicar o que significa.

Exception in thread "Thread-0":
Isso diz em qual thread a exceção ocorreu.

java.lang.NullPointerException:
Essa é a exceção que ocorreu, esse é o real problema que você achou.

at com.leonardofoda.main.Game.tick(Game.java:93):
Essa linha diz que o NullPointerException aconteceu no método tick da classe Game do pacote com.leonardofoda.main, precisamente na linha número 93
É nessa linha que você deveria investigar o que acontece, dica: NullPointerException significa que você tentou acessar um membro de um objeto null.

at com.leonardofoda.main.Game.run(Game.java:127):
Essa linha diz quem foi que chamou o método tick da classe Game, neste caso foi o método run da mesma classe.

at java.base/java.lang.Thread.run(Thread.java:834):
Essa linha diz quem chamou o método run da classe Game.

1 curtida