Edited lock to block all interraction including animation instead of just the movements

This commit is contained in:
Adastram 2024-01-11 10:30:34 +01:00
parent 1f8444bc0b
commit e8343160d4

View file

@ -119,21 +119,23 @@ class Entity:
def move(self, x: float, y: float, map_manager: MapManager): def move(self, x: float, y: float, map_manager: MapManager):
"""Fait bouger l'entité en tenant compte des collisions.""" """Fait bouger l'entité en tenant compte des collisions."""
# On vérifie le sens du mouvement pour changer self.direction if not self.locked: # Si l'entité n'est pas verrouillée on calcul le mouvement
if x > 0:
self.direction = 0 # On vérifie le sens du mouvement pour changer self.direction
elif x < 0: if x > 0:
self.direction = 1 self.direction = 0
# On ne met pas de else car si x = 0, on ne change pas de direction elif x < 0:
self.direction = 1
# On ne met pas de else car si x = 0, on ne change pas de direction
# On normalise la vitesse # On normalise la vitesse
initial_speed = math.sqrt(x**2+y**2) initial_speed = math.sqrt(x**2+y**2)
x = x/initial_speed*self.max_speed x = x/initial_speed*self.max_speed
y = y/initial_speed*self.max_speed y = y/initial_speed*self.max_speed
# On simule le mouvement. Si on ne rencontre pas de collision, on applique le mouvement # On simule le mouvement. Si on ne rencontre pas de collision, on applique le mouvement
if not self.locked: # Si l'entité n'est pas verrouillée on applique le movement
if not self.get_collisions(self.x + x, self.y, map_manager): if not self.get_collisions(self.x + x, self.y, map_manager):
self.x += x self.x += x
else: else: