Yeah took some time of thinking and fixing and rethinking.  Pygame is like a
strategy puzzle.  I've just mapping script, where in the text file are
numbers.  I read the numbers from 1,2 and switch then into rects that I
created.  Them I displayed them on the screen.  Its quite nice to make
something so cool without asking for help :P.  Check it out and tell me what
you think[attachements]

My only flaw is, the rects render upside down.  What could I do to fix that?

Attachment: map1.map
Description: Binary data

import pygame,sys,string
from pygame.locals import *
class map_:
        def __init__(self,wndow=(300,300)):
                self.size = wndow
                self.map = [[],[],[]]
                self.surfaces = [[],[]]
                self.window = pygame.display.set_mode(self.size)
                pygame.init()
        def create_box(self,size,color,rect):
                box = pygame.Surface((size))
                pygame.draw.rect(box,color,box.get_rect())
                self.surfaces[0].append(box)
                self.surfaces[1].append(rect)
        def load_text_map(self,map):
                file = open(map,"r")
                links = file.readlines()
                file.close()
                x = 0
                for i in links:
                        i = string.replace(i,"\n","")
                        i = i.split(",")
                        for e in i:
                                self.map[x].append(e)
                        x += 1
        def draw_box(self):
                while True:
                        for event in pygame.event.get():
                                if event.type == pygame.QUIT: sys.exit()
                        e = 0
                        while e < len(self.surfaces[0]):
                                
self.window.blit(self.surfaces[0][e],self.surfaces[1][e])
                                e += 1
                        pygame.display.update()
        def render_map(self,aray,dict):
                x=0
                for e in aray:  
                        z = 0
                        for y in e:
                                aray[x][z] = dict[int(y)]
                                z += 1
                        x += 1
                return aray
        def hex_converter(self,hexcolorcode):
                hexcolorcode = hexcolorcode[1:]
                red = hexcolorcode[0:2]
                red = int(red,16)
                blue = hexcolorcode[2:4]
                blue = int(blue,16)
                green = hexcolorcode[4:6]
                green = int(green,16)
                return (red,green,blue)
        def main(self):
                z = 0
                x = 0
                y = 0
                m = 0
                while z < len(self.map):
                        q = 0
                        while q < len(self.map[z]):
                                
self.create_box(self.map[z][q][0],self.map[z][q][1],(x,y))
                                y += 100
                                q += 1
                        y = 0
                        x += 100
                        z += 1
                self.draw_box()
Map = map_()
tiles = {1 : [(100,100),Map.hex_converter("#E0ECFF")], 2 : 
[(100,100),Map.hex_converter("#B5EDBC")] }
Map.load_text_map("map1.map")
Map.render_map(Map.map,tiles)
Map.main()

Reply via email to