# This file is part of ROBOTGAME # # ROBOTGAME is free software: you can redistribute it and/or modify it under the # terms of the GNU General Public License as published by the Free Software # Foundation, either version 3 of the License, or (at your option) any later # version. # # ROBOTGAME is distributed in the hope that it will be useful, but WITHOUT ANY # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR # A PARTICULAR PURPOSE. See the GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along with # ROBOTGAME. If not, see . # # ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' # # level1.py # -------------------- # date created : Tue Aug 7 2012 # copyright : (C) 2012 Sakse Dalum # maintained by : Sakse Dalum """ The first level. """ import os import pygame import random import re import level import player import tile import block import boulder class Level1(level.Level): def __init__(self, game, graphics_dir, paused=False): level.Level.__init__(self, game, graphics_dir, paused) self.dimensions = 10, 10 for i in range(self.dimensions[0]): for j in range(self.dimensions[1]): self.tiles.append( tile.Tile(self, i*64, j*48, self.imgs['ground1'])) for i in range(10): self.objects.append(block.Block(self, random.randint(0, 10)*64, random.randint(0, 10)*48, self.imgs['block1'], movable=True)) self.objects.append(boulder.Boulder(self, 64, 48)) def load(self): """Load all resources used in the level.""" tile_list = ['ground1', 'ground2'] for tile in tile_list: self.imgs[tile] = pygame.image.load(os.path.join( self.graphics_dir, 'tiles', '%s.png' % tile)) block_list = ['block1'] for block in block_list: self.imgs[block] = pygame.image.load(os.path.join( self.graphics_dir, 'blocks', '%s.png' % block)) # Load animations for anim, directory in ( [('boulder_up', os.path.join('boulder', 'up')), ('boulder_down', os.path.join('boulder', 'down')), ('boulder_right', os.path.join('boulder', 'right')), ('boulder_left', os.path.join('boulder', 'right'))] ): self.imgs[anim] = [] # Find all image files for the given animation anim_files = [] for root, dirs, files in os.walk(os.path.join( self.graphics_dir, directory)): for f in files: if re.match(r"^.*\.(png)$", '/'.join([root, f])): anim_files.append('/'.join([root, f])) # Sort and load the files for f in sorted(anim_files): img = pygame.image.load(f) self.imgs[anim].append(img) def restart(self): self.player.reset_pos()