From f34d8106ef5a0ab892f6561b7d8840bea94483d8 Mon Sep 17 00:00:00 2001 From: Sakse Dalum Date: Sun, 12 Aug 2012 20:09:17 +0200 Subject: [PATCH 1/3] Should fix index error. --- robotgame/level.py | 7 +++++-- robotgame/level1.py | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/robotgame/level.py b/robotgame/level.py index 11263e0..c6809de 100644 --- a/robotgame/level.py +++ b/robotgame/level.py @@ -78,11 +78,14 @@ class Level(object): def _sorted_objs(self, objs=None): return sorted(self.objects if objs is None else objs, key=lambda obj: (obj.y + obj.z)) - + def draw(self, window): self._blit_background(window) for obj in self._sorted_objs(): - obj.draw(window) + try: + obj.draw(window) + except IndexError: + print("Skipping frames ...") self.darkness.draw(window) diff --git a/robotgame/level1.py b/robotgame/level1.py index c198ab0..4c7c826 100644 --- a/robotgame/level1.py +++ b/robotgame/level1.py @@ -507,7 +507,7 @@ class Level1(level.Level): for i in range(3): self.objects.append( - CompletionBlock(self, 64 * (door_x - 6 + i), 48 * 4, + CompletionBlock(self, 64 * (door_x - 5 + i), 48 * 4, self.solution[i], i + 1)) # DRAW THE BACKGROUND From 2b97af6526adb2755be653eb7c846ef851ab53d2 Mon Sep 17 00:00:00 2001 From: Sakse Dalum Date: Sun, 12 Aug 2012 20:25:13 +0200 Subject: [PATCH 2/3] 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) From dc1df769cc4e6f517bc6f3350716198999fe3251 Mon Sep 17 00:00:00 2001 From: Sakse Dalum Date: Sun, 12 Aug 2012 20:28:20 +0200 Subject: [PATCH 3/3] Adjusted the size of level 1. --- robotgame/level1.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/robotgame/level1.py b/robotgame/level1.py index ac9928b..b4d9688 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 * 50, - 48 * 50), + level.Level.__init__(self, game, graphics_dir, size=(64 * 40, + 48 * 40), paused=paused) self.solution = range(1, 6) @@ -54,30 +54,28 @@ class Level1(level.Level): self.task_completions = [0, 0, 0] - self.dimensions = 50, 50 - self.set_darkness(0) - for i in range(self.dimensions[0]): - for j in range(self.dimensions[1]): + for i in range(self.size[0] / 64): + for j in range(self.size[1] / 48): self.tiles.append( tile.Tile(self, i*64, j*48, self.imgs['ground1'])) self.player.set_pos(64 * 15, 48 * 30) self.player.set_init_pos() - for i in range(self.dimensions[0]): + for i in range(self.size[0] / 64): if not i % 3: self.objects.append(block.Block(self, i * 64, 48 * 3, self.imgs['wall_outside'], width=3)) self.objects.append(block.InvisBlock(self, i * 64, - (self.dimensions[1]) * 48)) - for i in range(self.dimensions[1]): + self.size[1] * 48)) + for i in range(self.size[1] / 48): self.objects.append(block.InvisBlock(self, - 64, i * 48)) - self.objects.append(block.InvisBlock(self, self.dimensions[0] * 64, + self.objects.append(block.InvisBlock(self, self.size[0], i * 48))