class RenderUpdatesDraw(RenderClear): """call sprite.draw(screen) to render sprites""" def draw(self, surface): dirty = self.lostsprites self.lostsprites = [] for s, r in self.spritedict.items(): newrect = s.draw(screen) #Here's the big change if r is 0: dirty.append(newrect) else: dirty.append(newrect.union(r)) self.spritedict[s] = newrect return dirty