diff --git a/src/camera.py b/src/camera.py index b8bdabb..c711aed 100644 --- a/src/camera.py +++ b/src/camera.py @@ -3,3 +3,16 @@ class Camera: self.x = 0 self.y = 0 self.zoom = 1. + + # Variables utilisées pour le scrolling + self.target_x = self.x + self.target_y = self.y + self.target_zoom = self.zoom + + self.smoothness = 20. + + def update(self): + """Met à jour la caméra. Permet, par exemple, de faire le scrolling.""" + self.x += (self.target_x - self.x) / self.smoothness + self.y += (self.target_y - self.y) / self.smoothness + self.zoom += (self.target_zoom - self.zoom) / self.smoothness diff --git a/src/engine.py b/src/engine.py index 072843e..5e6008c 100644 --- a/src/engine.py +++ b/src/engine.py @@ -36,6 +36,7 @@ class Engine: l'appelle.""" self.renderer.update() self.event_handler.update() + self.camera.update() def stop(self): """Arrête le programme.""" diff --git a/src/entity.py b/src/entity.py new file mode 100644 index 0000000..b359e2c --- /dev/null +++ b/src/entity.py @@ -0,0 +1,4 @@ +class Entity: + def __init__(self): + self.x = 2 + self.y = 2 diff --git a/src/event_handler.py b/src/event_handler.py index 9bfb7dc..73ffa10 100644 --- a/src/event_handler.py +++ b/src/event_handler.py @@ -23,14 +23,14 @@ class EventHandler: self.key_pressed.remove(e.key) if K_RIGHT in self.key_pressed: - self.engine.camera.x += 2 + self.engine.camera.target_x += 20 if K_LEFT in self.key_pressed: - self.engine.camera.x -= 2 + self.engine.camera.target_x -= 20 if K_UP in self.key_pressed: - self.engine.camera.y -= 2 + self.engine.camera.target_y -= 20 if K_DOWN in self.key_pressed: - self.engine.camera.y += 2 + self.engine.camera.target_y += 20 if K_x in self.key_pressed: - self.engine.camera.zoom *= 1.01 + self.engine.camera.target_zoom *= 1.01 if K_c in self.key_pressed: - self.engine.camera.zoom *= 0.99 + self.engine.camera.target_zoom *= 0.99