opóźnienie wykonania instrukcji.

opóźnienie wykonania instrukcji.
NI
  • Rejestracja: dni
  • Ostatnio: dni
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.

Kopiuj
 
 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ć.

mgs_saladin
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 236
0

moze jakas tablica stanow?

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

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

Billy
  • Rejestracja: dni
  • Ostatnio: dni
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

Kopiuj
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:

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.