diff --git a/main.py b/main.py index f3fc49e..e193cc7 100644 --- a/main.py +++ b/main.py @@ -23,9 +23,11 @@ class Kelner: self.chodzi = True self.cel_x = x self.cel_y = y + self.kierunek = 0 # 0 - północ, 1 - wschód, 2 - południe, 3 - zachód def wklej(self): - screen.blit(kelnerImg, (self.x * blockSize, self.y * blockSize)) + kelnerRotated = pygame.transform.rotate(kelnerImg, -90 * kelner.kierunek) + screen.blit(kelnerRotated, (self.x * blockSize, self.y * blockSize)) def idz_do_stolika(self): self.cel_x, self.cel_y = self.stolik_docelowy.x, self.stolik_docelowy.y @@ -36,6 +38,28 @@ class Kelner: self.stolik_docelowy = None kelner.stan = "wraca" + def obrot_w_lewo(self): + if self.kierunek == 0: + self.kierunek = 3 + else: + self.kierunek -= 1 + + def obrot_w_prawo(self): + if self.kierunek == 3: + self.kierunek = 0 + else: + self.kierunek += 1 + + def idz_do_przodu(self): + if self.kierunek == 0: + self.y -= 1 + elif self.kierunek == 1: + self.x += 1 + elif self.kierunek == 2: + self.y += 1 + elif self.kierunek == 3: + self.x -= 1 + class Stolik: def __init__(self, x, y): @@ -130,12 +154,22 @@ while run: #print(kelner.stan)--------------------------Wypisuje stan kelnera #print(f"{kelner.x} {kelner.y}")-------------Wypisuje wspolrzedne kelnera + + #--------------Zmiana kierunku kelnera + if kelner.x != kelner.cel_x: + if kelner.x < kelner.cel_x: + kelner.kierunek = 1 + else: + kelner.kierunek = 3 + else: + if kelner.y < kelner.cel_y: #zmieniamy pozycje Y dopiero, gdy pozycja X bedzie prawidlowa + kelner.kierunek = 2 + else: + kelner.kierunek = 0 + #----------------Zmiana pozycji kelnera if kelner.chodzi == True and licznik % (101 - kelner.speed) == 0: #ograniczenie prędkości - if kelner.x != kelner.cel_x: - kelner.x += numpy.sign(kelner.cel_x - kelner.x) - else: - kelner.y += numpy.sign(kelner.cel_y - kelner.y) #zmieniamy pozycje Y dopiero, gdy pozycja X bedzie prawidlowa + kelner.idz_do_przodu() #----------------Sprawdzenie, czy kelner jest u celu