packman i funkcja sleep

0

Cześć,

Robimy ze znajomym packman'a w Java,

napotkaliśmy na problem, ponieważ chcemy zrobić losowe wyświetlanie się owocu, wszystko jest przygotowane, ale gdy używamy funkcji sleep, to cała gra, korzysta z tej samej funkcji. tzn jeśli jest 10tys ms to packman rusza się również co 10tys ms.

o to sleep:

   public void PlayGame(Graphics2D g2d) {
 try{           
            DrawOwoc(g2d, 4,4);
            
  Thread.currentThread().sleep(1000)  ;        
       }
 catch (Exception e)
 {
     }
 
        if (dying) {
            Death();
            
        
        } else {
            
                 
       MovePacMan();
            DrawPacMan(g2d);
            moveGhosts(g2d);
 CheckMaze();
            
     
            
       
        }
    }

pomoże ktoś nam rozwiązać ten problem ?:)

1

hej packman to jakaś nowa wersja pacman'a? Co on robi zjada paczki a nie duszki?

0

Użyj timera, zamiast sleep'a.

0
Richard Stallman napisał(a):

hej packman to jakaś nowa wersja pacman'a? Co on robi zjada paczki a nie duszki?

generalnie ma jeść owoce, więc coś w tym jest :D

btw literówka

timer'a, tzn?

0
iveldion7 napisał(a):

chcemy zrobić losowe wyświetlanie się owocu

praca szarych komórek na max chodzi o to, żeby owoc migał? Czy może ma się wyświetlać w losowych miejscach?

0

wyświetlał się w losowych meijscach co jakiś czas. np. co 5 sekund.

0

tutaj jest funkcja drawowoc

public void DrawOwoc(Graphics2D g2d, int x, int y) {
      Random r = new Random(); 
int a = r.nextInt(360);
        int b = r.nextInt(360);
 
        g2d.drawImage(owoc, a , b, this);
    }
0

To utwórzcie Timer, który co 5 sekund wywoła metodę repaint(). A czy przy rysowaniu nowego owocu, poprzedni ma zniknąć?
P.S. nazwa metody DrawOwoc wykręca mi wnetrzności, może drawFruit lub rysujOwoc.

0

Ja bym zaczął od rozdzielenia logiki od prezentacji gry. Na przykład - lista owoców, do której co 5 sekund dodajesz owoc w losowej pozycji. Potem taką listę owoców wyświetlasz.

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