opóźnienie wykonania instrukcji.

0

helou.

Zrobiłem grę 2d opartą o mapę z kafelkami. Chcę zrobić tak, że po wejściu na określony kafelek, na innym pojawiał się przeciwnik. Jednak mam taki problem, że podczas kolizji z kafelkiem, nieustannie tworzą się przeciwnicy, a jeżeli w klasie zrobię, że po stworzeniu przeciwnika następuje usunięcie kafelka tworzącego przeciwników, to nie tworzy w ogóle przeciwnika.

 
 if (kafel instanceof Specjalne.generowanie) {
        	
        	addObiekt(map, ObiektPrzeciwnik, 4, 6);
        	loadPostac();
                map.removeObiekt(kafel);
        	
        }

W takim wypadku myślę, że rozwiązaniem byłoby opóźnione wykonanie usuwania obiektu, ale takie bez zatrzymywania wątku, jednak nie wiem jak to zrobić.

0

moze jakas tablica stanow?

boolean tab[][] = new boolean[h][w];

by sygnalizowac ze wszedles 1x na kafelek i instrukcja wykona sie 1x?

0

jeżeli koniecznie chcesz po prostu poczekać bez wstrzymania całości, to stwórz nowy wątek, którego zadaniem będzie przeczekanie określonego czasu i usunięcie obiektu. Przekaż w referencji konstruktora wątku obiekt do usunięcia

class opoznioneUsuwanie implements Runnable {
    typObiektu obiekt;
    typMap map;
    
    opoznioneUsuwanie (typMap map, typObiektu obiektDoUsuniecia) {
        obiekt = obiektDoUsuniecia;
        this.map = map;
    }

    public void run () {
        try {Thread.sleep(czasWmsPoJakimMaZostacUsunietyObiekt);} catch (Exception e) {}
        map.removeObiekt(obiektDoUsuniecia);
    }
}

odpalasz to:

new Thread(new opoznioneUsuwanie(map,obiektDoUsuniecia)).start();

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