From f65c1adf349d055a7607d560a9c4eac3b864d11d Mon Sep 17 00:00:00 2001 From: Miguel Angel Astor Romero Date: Wed, 16 Jan 2013 23:11:42 -0430 Subject: [PATCH] Added code for creating the background image in InGameState. --- background.py | 2 +- gfx/Pared.png | Bin 12243 -> 12243 bytes gfx/Pared3.png | Bin 0 -> 3389 bytes ingame.py | 39 +++++++++++++++++++++++++++++++++++++-- 4 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 gfx/Pared3.png diff --git a/background.py b/background.py index d4edc37..77dcf8a 100644 --- a/background.py +++ b/background.py @@ -20,7 +20,7 @@ class TiledBackground(): if DEBUG: print '(' + str(rep_x) + ', ' + str(rep_y) + ')' - self.image = pygame.Surface((self.w, self.h)) + self.image = pygame.Surface((self.w, self.h), pygame.SRCALPHA) render_x = 0 render_y = 0 for i in range(rep_x): diff --git a/gfx/Pared.png b/gfx/Pared.png index 5ab7033a0ad4eacac7398da5da92093fc5b670d6..e410d7d1035c771af42a7f464714e0df51986a96 100644 GIT binary patch delta 21 dcmcZ{e>r|aAlF?+L1rEeo$pV#Y>ckZ2LNM42;~3( delta 21 dcmcZ{e>r|aAlDr(NmgFtLpG~FY>ckZ2LNO72;cw! diff --git a/gfx/Pared3.png b/gfx/Pared3.png new file mode 100644 index 0000000000000000000000000000000000000000..5ef36a777bf891b7aa9de08b2dd7d42194206313 GIT binary patch literal 3389 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 T5Ktxe00000NkvXXu0mjf=5KU_ literal 0 HcmV?d00001 diff --git a/ingame.py b/ingame.py index 6f1fd36..0a88d27 100644 --- a/ingame.py +++ b/ingame.py @@ -16,6 +16,8 @@ class InGameState(BaseState): def __init__(self): BaseState.__init__(self) + self.background_color = (125, 158, 192) + self.next_transition = VALID_STATES['STAY'] self.cursor_x = 0 self.cursor_y = 0 @@ -24,7 +26,39 @@ class InGameState(BaseState): screen_center = self.get_screen_center() self.rectangle = pygame.Rect(screen_center[0] - 50, screen_center[1] - 50, 100, 100) - self.background = background.TiledBackground(1280, 1024, 'gfx/piso.png') + # Create a surface for the background. + bg_w = int((1280.0 * float(pygame.display.Info().current_w)) / 1024.0) + bg_h = int((1024.0 * float(pygame.display.Info().current_h)) / 768.0) + self.background = pygame.Surface((bg_w, bg_h)) + + # Create the floor. + floor = background.TiledBackground(bg_w, bg_h, 'gfx/piso.png') + + # Create the walls for the top and the bottom (the same for both). + bg_h = int((80.0 * float(pygame.display.Info().current_h)) / 768.0) + walls_top = background.TiledBackground(bg_w, bg_h, 'gfx/Pared.png') + bg_y = int(((1024.0 - 80.0) * float(pygame.display.Info().current_h)) / 768.0) + + # Create the left walls. + bg_w = int((40.0 * float(pygame.display.Info().current_w)) / 1024.0) + bg_h = int(((1024.0 - 160) * float(pygame.display.Info().current_h)) / 768.0) + walls_left = background.TiledBackground(bg_w, bg_h, 'gfx/Pared2.png') + _y = int((80.0 * float(pygame.display.Info().current_h)) / 768.0) + walls_left.set_position((0, _y)) + + # Create the right walls. + walls_right = background.TiledBackground(bg_w, bg_h, 'gfx/Pared3.png') + _x = int(((1280.0 - 40.0) * float(pygame.display.Info().current_h)) / 768.0) + walls_right.set_position((_x, _y)) + + # Build the background image. + floor.draw(self.background) + walls_top.set_position((0, 0)) + walls_top.draw(self.background) + walls_top.set_position((0, bg_y)) + walls_top.draw(self.background) + walls_left.draw(self.background) + walls_right.draw(self.background) def input(self): for event in pygame.event.get(): @@ -56,5 +90,6 @@ class InGameState(BaseState): return self.next_transition def render(self, canvas): - self.background.draw(canvas) + canvas.fill(self.background_color) + canvas.blit(self.background, (0, 0)) pygame.draw.rect(canvas, (255, 0, 255), self.rectangle)