Amélioration de l'engine et ajout d'éléments de gameplay #20
|
@ -7,6 +7,9 @@ class Camera:
|
|||
self.y = 0
|
||||
self.zoom = 1.
|
||||
|
||||
# Décalage lors du mouvement du joueur
|
||||
self.player_moving_offset = 100
|
||||
|
||||
# Variables utilisées pour le scrolling
|
||||
self.target_x = self.x
|
||||
self.target_y = self.y
|
||||
|
@ -21,8 +24,10 @@ class Camera:
|
|||
|
||||
# Si on suit une entité, on met à jour les coordonnées de suivi
|
||||
if self.followed_entity is not None:
|
||||
self.target_x = self.followed_entity.x
|
||||
self.target_y = self.followed_entity.y
|
||||
self.target_x = (self.followed_entity.x + self.followed_entity.mouvements[0] *
|
||||
self.player_moving_offset / self.zoom)
|
||||
self.target_y = (self.followed_entity.y + self.followed_entity.mouvements[1] *
|
||||
self.player_moving_offset / self.zoom)
|
||||
|
||||
self.x += (self.target_x - self.x) / self.smoothness
|
||||
self.y += (self.target_y - self.y) / self.smoothness
|
||||
|
|
|
@ -10,6 +10,12 @@ class Entity:
|
|||
self.x = 8
|
||||
self.y = 8
|
||||
|
||||
# Variables utilisées pour detecter les mouvements
|
||||
self.last_x = 0
|
||||
self.last_y = 0
|
||||
|
||||
self.mouvements = [0., 0.]
|
||||
|
||||
self.max_speed = 1.
|
||||
|
||||
self.life_points = -1
|
||||
|
@ -42,6 +48,14 @@ class Entity:
|
|||
if self.damage_cooldown < 0:
|
||||
self.damage_cooldown = 0
|
||||
|
||||
# Si les coordonnées ont changé, l'entité a bougé
|
||||
|
||||
self.mouvements[0] = (self.x - self.last_x) / self.max_speed
|
||||
self.mouvements[1] = (self.y - self.last_y) / self.max_speed
|
||||
|
||||
self.last_x = self.x
|
||||
self.last_y = self.y
|
||||
|
||||
def take_damages(self, damages: int):
|
||||
"""Inflige {damages} dégâts à l'entité."""
|
||||
|
||||
|
|
Loading…
Reference in a new issue