Attachment:
player.png
Description: PNG image
import pygame,sys,string from pygame.locals import * class Block(pygame.sprite.Sprite): def __init__(self): pygame.sprite.Sprite.__init__(self) class SpriteSheet: def __init__(self,image): self.sprite = pygame.image.load(image).convert() self.rect = '' self.imag = '' def slice(self,rect): rect = Rect(rect) img = pygame.Surface(rect.size).convert() img.set_alpha(40) img.blit(self.sprite,(0,0),rect) self.rect = rect self.imag = img class map_(object): def __init__(self,block=100,wndow=(300,300)): self.BLOCK = block self.size = wndow self.window = pygame.display.set_mode(self.size) self.blocks = [] self.map = [] pygame.init() 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 create_box(self,size,color,rect): box = Block() box.image = pygame.Surface((size)) pygame.draw.rect(box.image,color,box.image.get_rect()) box.color = color box.point = rect self.blocks.append(box) def load_text_map(self,map): file = open(map,"r") links = file.readlines() file.close() x = 0 total = len(links) k = 0 while k<total: self.map.append([]) k += 1 for i in links: i = string.replace(i,"\n","") i = i.split(",") for e in i: self.map[x].append(e) x += 1 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 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)) x += self.BLOCK q += 1 x = 0 y += self.BLOCK z += 1 self.draw_box() 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.blocks): self.window.blit(self.blocks[e].image,self.blocks[e].point) e += 1 guner = SpriteSheet("player.png") guner.slice((0,0,40,57)) self.window.blit(guner.imag,(400,400)) pygame.display.update() Map = map_(25,(700,600)) tiles = {1 : [(25,25),Map.hex_converter("#E0ECFF")], 2 : [(25,25),Map.hex_converter("#B5EDBC")], 3 : [(25,25),Map.hex_converter("#F3E807")] } Map.load_text_map("map1.map") Map.render_map(Map.map,tiles) Map.main()