import pygame

class tinspr(object):
	def __init__(self,filename=None):
		if filename:
			image_file = filename + ".png"
			txt_file = filename + ".txt"
			self.image = pygame.image.load(image_file).convert()
			self.image.set_colorkey(self.image.get_at((0,0)))
			#---------------------------------------
			self.rect = {}
			tmp = pygame.Rect(0,0,5,5)
			#------------------
			lines = open(txt_file).read().split("\n")
			row = 0
			for line in lines:
				col = 0
				for name in line.split(" "):
					self.rect[name] = tmp.move(col,row)
					col += 5
				row += 5	
			
	def get(self,name,num=0):
		return self.rect[name]
	
	def blit_to(self,image,dest,name):
		image.blit(self.image,dest,self.rect[name])

if __name__ == "__main__":
	from pygame import *
	end = False
	pygame.init()
	pygame.display.set_caption("TinSprite")
	pygame.mouse.set_visible(1)
	pygame.event.set_allowed(None)
	pygame.event.set_allowed([QUIT])
	window = pygame.display.set_mode((32, 32))
	clock = pygame.time.Clock()
	#-------------------------------------------------------------------
	spr = tinspr("tinwar")
	queue = ["red_zooka_right_0", "red_zooka_right_1"]
	queue0 = ["red_gun_right_0", "red_gun_right_1"]
	queue1 = ["red_walk_right_0", "red_walk_right_1"]
	queue2 = ["red_walk_right_0", "red_walk_right_1","red_throw_right_0", "red_throw_right_1"]
	queue3 = ["none", "boom_0", "boom_1", "boom_2"]
	#-------------------------------------------------------------------
	while end == False :
		clock.tick(5)
		window.fill((255,255,255))
		#=====================================================
		spr.blit_to(window,(10,10),queue[0])
		queue.append(queue.pop(0))
		spr.blit_to(window,(12,15),queue0[0])
		queue0.append(queue0.pop(0))
		spr.blit_to(window,(6,4),queue1[0])
		queue1.append(queue1.pop(0))
		spr.blit_to(window,(11,21),queue2[0])
		queue2.append(queue2.pop(0))
		spr.blit_to(window,(24,21),queue3[0])
		queue3.append(queue3.pop(0))
		#======================================================
		pygame.display.flip()
		event = pygame.event.poll()
		if event.type == QUIT:
			end = True
		elif event.type == MOUSEBUTTONDOWN:
			end = True
		elif event.type == KEYDOWN:
			end = True
		#======================================================