Pygame - creating a game background

.
Here's how the background for SubHunter is created with Pygame.


def createBackgroundImage(self):
'''Generate a background of sky, sea and sand'''

backgroundSurface = pygame.Surface((main.GAME_WIDTH, main.GAME_HEIGHT)).convert()

# Sky
sky = pygame.Surface((main.GAME_WIDTH, main.SKY_HEIGHT)).convert()
for y in range(0, int(main.SKY_HEIGHT)):
lineRect = Rect((0, y), (main.GAME_WIDTH, 1))
greenValue = (y / main.SKY_HEIGHT) * 255
sky.fill((53, greenValue, 207), lineRect)
#sky.fill((greenValue, 0, 07), lineRect)
backgroundSurface.blit(sky, (0, 0))

# Sea
sea = pygame.Surface((main.GAME_WIDTH, main.SEA_HEIGHT)).convert()
for i in range(0, int(main.SEA_HEIGHT)):
lineRect = Rect((0, i), (main.GAME_WIDTH, 1))
blueValue = 255 - ((i / main.SEA_HEIGHT) * 255);
sea.fill((0, 20, blueValue), lineRect)
backgroundSurface.blit(sea, (0, main.SKY_HEIGHT))

# Sand
sand = pygame.Surface((main.GAME_WIDTH, main.SAND_HEIGHT)).convert()
for i in range(0, int(main.SAND_HEIGHT)):
lineRect = Rect((0, main.SAND_HEIGHT - i), (main.GAME_WIDTH, 1))
colourValue = ((main.SAND_HEIGHT - i) / (main.GAME_HEIGHT - main.SAND_HEIGHT)) * 255
sand.fill((colourValue * 4, colourValue * 4, colourValue * 0.1), lineRect)
backgroundSurface.blit(sand, (0, main.GAME_HEIGHT - main.SAND_HEIGHT))

0 comments: