Mercurial > dw
changeset 49:763392fbc883
Moved map.py to level.py
| author | Radomir Dopieralski <moindev@sheep.art.pl> |
|---|---|
| date | Wed, 26 Dec 2007 17:12:41 +0100 |
| parents | 9aabc4752467 |
| children | 747288e8ba70 |
| files | lib/display.py lib/level.py lib/map.py lib/shadow.py |
| diffstat | 4 files changed, 47 insertions(+), 54 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/display.py Wed Dec 26 12:46:23 2007 +0100 +++ b/lib/display.py Wed Dec 26 17:12:41 2007 +0100 @@ -20,10 +20,10 @@ pygame.sprite.Sprite.__init__(self) self.base_image = pygame.image.load("data/image/gauge.png").convert() self.image = self.base_image.copy() - self.image.set_alpha(128) + self.image.set_alpha(200) self.rect = self.image.get_rect() self.rect.bottom = display.screen.get_rect().bottom - self.image.fill((128, 200, 0), Rect(11, 3, 10, 2)) + self.image.fill((128, 200, 0), Rect(11, 3, 18, 2)) class Display: """Display-related code"""
--- a/lib/level.py Wed Dec 26 12:46:23 2007 +0100 +++ b/lib/level.py Wed Dec 26 17:12:41 2007 +0100 @@ -1,9 +1,9 @@ import pygame from pygame.locals import * import os +import re from util import * -from map import Map class Level: def __init__(self, filename): @@ -27,3 +27,46 @@ module = __import__("monster.%s" % kind, globals(), {}, ["Mob"]) monster = module.Mob((x, y), self) return monster + +class Map: + def __init__(self, filename): + '''Read the map from a file.''' + + self.map = [] + self.blocking = [] + self.map_key = {} + self.w = 0 + for line in file(filename).readlines(): + m = re.match('^(?P<key>.)\s+<(?P<urls>.*)>\s*$', line) + if m: + urls = re.split('>\s*<', m.group('urls')) + self.map_key[m.group('key')] = urls + elif re.match('^\s*$', line): + pass # Ignore empty lines + else: + map_line = [] + block_line = [] + for char in line: + if char in self.map_key: + map_line.append(char) + if char=='X': + block_line.append(True) + else: + block_line.append(False) + if self.w<len(map_line): + self.w = len(map_line) + self.map.append(map_line) + self.blocking.append(block_line) + self.h = len(self.map) + + def __getitem__(self, key): + return self.map[key] + + def is_blocked(self, x, y): + if x<0 or y<0: + return True + try: + return self.blocking[y][x] + except IndexError: + return True +
--- a/lib/map.py Wed Dec 26 12:46:23 2007 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -import re - -class MapFileError: - pass - -class Map: - def __init__(self, filename): - '''Read the map from a file.''' - - self.map = [] - self.blocking = [] - self.map_key = {} - self.w = 0 - for line in file(filename).readlines(): - m = re.match('^(?P<key>.)\s+<(?P<urls>.*)>\s*$', line) - if m: - urls = re.split('>\s*<', m.group('urls')) - self.map_key[m.group('key')] = urls - elif re.match('^\s*$', line): - pass # Ignore empty lines - else: - map_line = [] - block_line = [] - for char in line: - if char in self.map_key: - map_line.append(char) - if char=='X': - block_line.append(True) - else: - block_line.append(False) - if self.w<len(map_line): - self.w = len(map_line) - self.map.append(map_line) - self.blocking.append(block_line) - self.h = len(self.map) - - def __getitem__(self, key): - return self.map[key] - - def is_blocked(self, x, y): - if x<0 or y<0: - return True - try: - return self.blocking[y][x] - except IndexError: - return True -
--- a/lib/shadow.py Wed Dec 26 12:46:23 2007 +0100 +++ b/lib/shadow.py Wed Dec 26 17:12:41 2007 +0100 @@ -17,7 +17,7 @@ pygame.sprite.Sprite.__init__(self) self.dh = 10 self.z = -1000 - self.image.set_alpha(128) + self.image.set_alpha(92) self.rect = Rect(0,0, 24, 24) self.sprite = sprite self.update()
