From 2b97af6526adb2755be653eb7c846ef851ab53d2 Mon Sep 17 00:00:00 2001 From: Sakse Dalum Date: Sun, 12 Aug 2012 20:25:13 +0200 Subject: [PATCH] Made the camera behave nicely when approaching map edges. --- robotgame/level.py | 6 ++++-- robotgame/level1.py | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/robotgame/level.py b/robotgame/level.py index c6809de..5b65fe6 100644 --- a/robotgame/level.py +++ b/robotgame/level.py @@ -69,8 +69,10 @@ class Level(object): screen_size = self.game.window.get_size() - self.camera_x = (self.player.x - screen_size[0] / 2 + 32) - self.camera_y = (self.player.y - screen_size[1] / 2 - 24) + self.camera_x = max(0, min(self.size[0] - screen_size[0], + (self.player.x - screen_size[0] / 2 + 32))) + self.camera_y = max(0, min(self.size[1] - screen_size[1] - 48, + (self.player.y - screen_size[1] / 2 - 24))) def _blit_background(self, window): window.blit(self.background, (0 - self.camera_x, 0 - self.camera_y)) diff --git a/robotgame/level1.py b/robotgame/level1.py index 4c7c826..ac9928b 100644 --- a/robotgame/level1.py +++ b/robotgame/level1.py @@ -44,8 +44,8 @@ import logic.colourboxes class Level1(level.Level): def __init__(self, game, graphics_dir, paused=False): - level.Level.__init__(self, game, graphics_dir, size=(64 * 100, - 48 * 100), + level.Level.__init__(self, game, graphics_dir, size=(64 * 50, + 48 * 50), paused=paused) self.solution = range(1, 6)