view 001/001.py @ 12:9dc97f88e274 default tip

Added CC0 license
author Radomir Dopieralski <sheep-devel@sheep.art.pl>
date Sun, 08 Jul 2012 19:56:38 +0200
parents 2661d2091f1d
children
line wrap: on
line source

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import pygame
import pygame.locals as pg


LEVEL_MAP = [
    "XXXXXXXXXXXXXXXXXXXXXXXXX",
    "X.......................X",
    "X.XXXXXXXXXX.XXXXXXXXXX.X",
    "X.X......X.X..........X.X",
    "X.X..X.XXX.X.XXXXXXXXXX.X",
    "X.XXXX.....X.......X..X.X",
    "X......XXXXXXXXXXX.X..X.X",
    "X.XX.X.X.........X....X.X",
    "X.X..X...........X.X..X.X",
    "X.X..X.X.........X.X..X.X",
    "X.X..X.XXXXXXXXXXX.XXXX.X",
    "X.XXXX..................X",
    "X.X..X.XXXXXXXXXXXXXXXX.X",
    "X.X..X................X.X",
    "X.X....X..............X.X",
    "X.XXXX.XXXXXXXXXXXXXXXX.X",
    "X.......................X",
    "XXXXXXXXXXXXXXXXXXXXXXXXX",
]

def initialize_screen():
    pygame.display.init()
    screen = pygame.display.set_mode((800, 600))
    screen.fill((0x66, 0x66, 0x66))
    return screen

def load_images():
    images = {
        'X': pygame.image.load('wall.png').convert(),
        '.': pygame.image.load('dirt.png').convert(),
        '@': pygame.image.load('hero.png').convert(),
    }
    return images

def draw_map(screen, images, level_map):
    for y, row in enumerate(level_map):
        for x, square in enumerate(row):
            screen.blit(images[square], (x * 32, y * 32))

def wait_for_quit():
    pygame.display.update()
    while True:
        event = pygame.event.wait()
        if event.type == pg.QUIT:
            return

def run_game():
    screen = initialize_screen()
    images = load_images()
    draw_map(screen, images, LEVEL_MAP)
    wait_for_quit()


if __name__ == '__main__':
    run_game()