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.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
|
||||
|
Loading…
Reference in New Issue
Block a user