Powrócenie do gry po jej zatrzymaniu

0

Cześć, mam pewien problem. Piszę sobie malutą grę i mam problem z zatrzymaniem/pauza gry.
Mam metodę

public void keyPressed(int k)
    {
        if (k == KeyEvent.VK_ESCAPE) gsm.setPaused(true);
}

która po naciśnięciu klawisza Escape powinna zatrzymywać grę i przeskakiwać do innej klasy w której jest tylko obraz ze grę zatrzymaną. I tak się dzieje. Problem gdy jeszcze raz chcę nacisnąć escape żeby wrócić do gry. W klasie PauseState też mam metodę

public void keyPressed(int k)
    {
        if (k == KeyEvent.VK_ESCAPE) gsm.setPaused(false);

    }

która powinna przerywać tą pauze ale jednak nie działa. Nie wiem jak sobie poradzić.
Dodam że gdy do pierwszej metody dodam przycisk np P który bedzie miał gsm.setPaused(false); wszystko pięknie działa ale nie chcę mieć 2 różnych przycisków do pauzowania i odpauzowania gry.

Nie wiem czy o to chodziło

private PauseState pauseState;
private boolean paused;

//z konstruktora 
 pauseState = new PauseState(this);
 paused = false;

//metoda setPause
public void setPaused(boolean b)
{
   paused = b;
}

a jak zrobie coś takiego

 if (k == KeyEvent.VK_ESCAPE) gsm.setPaused(true);
        if (k == KeyEvent.VK_P) gsm.setPaused(false);

to wszystko działa

1

zapewne jest wywlowana keypress z false na samym koncu dlatego nic Ci sie nie pokazuje. Co musisz zrobic to zamiast wywolywac to z true false to zrobic cos takiego

boolean menu = false;
if (k == KeyEvent.VK_ESCAPE)
{
    menu = !menu; //nie wiem czy zadziala w javie, ale chodzi o to zeby zmienic status na przeciwny.
    gsm.setPaused(menu);
}

Edit, ale jak slusznie @spartanPAGE zauwazyl. najlepiej uzyc tutaj StatePattern

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