From 9e93d1b9802385900b6f833f81f84c0ac50f91ef Mon Sep 17 00:00:00 2001 From: Sin Nombre Date: Fri, 28 May 2010 20:45:29 +0000 Subject: Beta version complete with state and capital quizzes --- (limited to 'pgu/tilevid.py') diff --git a/pgu/tilevid.py b/pgu/tilevid.py new file mode 100644 index 0000000..00f730d --- /dev/null +++ b/pgu/tilevid.py @@ -0,0 +1,195 @@ +"""Square tile based engine.""" + +from pgu.vid import * +import pygame + +class Tilevid(Vid): + """Based on [[vid]] -- see for reference.""" + def paint(self,s): + sw,sh = s.get_width(),s.get_height() + self.view.w,self.view.h = sw,sh + + tiles = self.tiles + tw,th = tiles[0].image.get_width(),tiles[0].image.get_height() + w,h = self.size + + if self.bounds != None: self.view.clamp_ip(self.bounds) + + ox,oy = self.view.x,self.view.y + tlayer = self.tlayer + blayer = self.blayer + alayer = self.alayer + sprites = self.sprites + + blit = s.blit + yy = - (self.view.y%th) + my = (oy+sh)/th + if (oy+sh)%th: my += 1 + + if blayer != None: + for y in xrange(oy/th,my): + if y >=0 and y < h: + trow = tlayer[y] + brow = blayer[y] + arow = alayer[y] + xx= - (self.view.x%tw) + mx = (ox+sw)/tw + #if (ox+sh)%tw: mx += 1 + for x in xrange(ox/tw,mx+1): + if x >=0and x=0 and y=0 and x