JAVA Animacja/zmiana

0

Witam. Tworzę mini gre 2D w Javie. Mam już dosyć sporo rzeczy ale od dłuższego czasu próbuje zrobić z animacjami gracza(ruch w lewo inny obrazek, w prawo inny itd.)

Mój projekt składa się z:
Game(zawiera ogólne instrukcje dot. gry(rysowanie mapy gracza obiektow obsluga zdarzen))
EntityPlayer(zawiera metodę move, opis blokad gracza na danych kafelkach )
Map(jak sama nazwa mówi)

Wpadłem na pomysł aby zrobić warunek, jeśli gracz idzie w lewo jest rysowany w miejscu gracza dany obrazek(EntityPlayer)

if (player.left) {
			g.drawImage(pretorian, (int) (xp - 32), (int) (yp - 32), null);
		}

Jeśli w prawo to inny obrazek itd.
Jedyny problem jest w sprawdzeniu czy gracz idzie w danym kierunku.Jeśli uruchamiam grę z powyższym fragmentem, to jest biały ekran i wyjątek:

Exception in thread "main" java.lang.NullPointerException
	at src.Skatty.EntityPlayer.paint(EntityPlayer.java:244)
	at src.Skatty.Game.gameLoop(Game.java:233)
	at src.Skatty.Game.<init>(Game.java:177)
	at src.Skatty.Game.main(Game.java:503)

Dodam że EntityPlayer jest kompilowany prawidłowo.Poniżej zamieszcze fragmenty metody move itp.

Opis metody move w EntityPlayer:

	public boolean move(float dx, float dy) {
		float nx = x + dx;
		float ny = y + dy;
		if (validLocation(nx, ny)) {
			
			x = nx;
			y = ny;
			
			ang = (float) (Math.atan2(dy, dx) - (Math.PI / 2));
			return true;
		}
		return false;
	}

Ruch(Game):

	if ((dx != 0) || (dy != 0)) {
			player.move(dx * delta * 0.003f,
						dy * delta * 0.003f);

Obsługa klawiszy(Game):

public void keyPressed(KeyEvent e) {
				if (e.getKeyCode() == KeyEvent.VK_A) {
			left = true;
			System.out.print("left");

public void keyReleased(KeyEvent e) {
			if (e.getKeyCode() == KeyEvent.VK_A) {
			left = false;
		}
		}

Obsluga kierunku(Game):

public void logic(long delta) {
		float dx = 0;
		float dy = 0;
		if (left) {
			dx -= 1;
		}
		if (right) {
			dx += 1;
		}
		if (up) {
			dy -= 1;
		}
		if (down) {
			dy += 1;

Jeśli ktoś ma pomysł jak uwzględnić w EntityPlayer ruch gracza w danym kierunku proszę o pomoc.

0

Exception in thread "main" java.lang.NullPointerException
at src.Skatty.EntityPlayer.paint(EntityPlayer.java:244)

Jak k*a wygląda wiersz 244?

0

Czlowieku, ogarnij sie. Przeciez masz napisane, co jest nie tak ! Probujesz rysowac (metoda paint()) coś, czego nie ma (NullPointerException). Uzywasz referencji na obiekt, na ktorym nie zostal wywolany konstruktor. OMG.

1 użytkowników online, w tym zalogowanych: 0, gości: 1