added kelner's direction and rotation
This commit is contained in:
parent
f508f6c4d0
commit
296f12d7d9
44
main.py
44
main.py
@ -23,9 +23,11 @@ class Kelner:
|
|||||||
self.chodzi = True
|
self.chodzi = True
|
||||||
self.cel_x = x
|
self.cel_x = x
|
||||||
self.cel_y = y
|
self.cel_y = y
|
||||||
|
self.kierunek = 0 # 0 - północ, 1 - wschód, 2 - południe, 3 - zachód
|
||||||
|
|
||||||
def wklej(self):
|
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):
|
def idz_do_stolika(self):
|
||||||
self.cel_x, self.cel_y = self.stolik_docelowy.x, self.stolik_docelowy.y
|
self.cel_x, self.cel_y = self.stolik_docelowy.x, self.stolik_docelowy.y
|
||||||
@ -36,6 +38,28 @@ class Kelner:
|
|||||||
self.stolik_docelowy = None
|
self.stolik_docelowy = None
|
||||||
kelner.stan = "wraca"
|
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:
|
class Stolik:
|
||||||
def __init__(self, x, y):
|
def __init__(self, x, y):
|
||||||
@ -130,12 +154,22 @@ while run:
|
|||||||
#print(kelner.stan)--------------------------Wypisuje stan kelnera
|
#print(kelner.stan)--------------------------Wypisuje stan kelnera
|
||||||
#print(f"{kelner.x} {kelner.y}")-------------Wypisuje wspolrzedne 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
|
#----------------Zmiana pozycji kelnera
|
||||||
if kelner.chodzi == True and licznik % (101 - kelner.speed) == 0: #ograniczenie prędkości
|
if kelner.chodzi == True and licznik % (101 - kelner.speed) == 0: #ograniczenie prędkości
|
||||||
if kelner.x != kelner.cel_x:
|
kelner.idz_do_przodu()
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
#----------------Sprawdzenie, czy kelner jest u celu
|
#----------------Sprawdzenie, czy kelner jest u celu
|
||||||
|
Loading…
Reference in New Issue
Block a user