def render_block(self, x0=0, y0=0, x1=None, y1=None): """Update a rectangle of the screen.""" if x1 is None: x1 = self.width if y1 is None: y1 = self.height layers = [l.layer for l in self.layers] _stage.render(x0, y0, x1, y1, layers, self.buffer, self.display)
def render_block(self, x0=0, y0=0, x1=None, y1=None): if x1 is None: x1 = self.width if y1 is None: y1 = self.height layers = [l.layer for l in self.layers] with self.display as display: display.block(x0 * self.scale, y0 * self.scale, x1 * self.scale - 1, y1 * self.scale - 1) _stage.render(x0, y0, x1, y1, layers, self.buffer, display.spi, self.scale)
def render_sprites(self, sprites): """Update the spots taken by all the sprites in the list.""" layers = [l.layer for l in self.layers] for sprite in sprites: x0 = max(0, min(self.width - 1, min(sprite.px, int(sprite.x)))) y0 = max(0, min(self.height - 1, min(sprite.py, int(sprite.y)))) x1 = max(1, min(self.width, max(sprite.px, int(sprite.x)) + 16)) y1 = max(1, min(self.height, max(sprite.py, int(sprite.y)) + 16)) if x0 == x1 or y0 == y1: continue _stage.render(x0, y0, x1, y1, layers, self.buffer, self.display) sprite._updated()
def render_sprites(self, sprites): layers = [l.layer for l in self.layers] for sprite in sprites: x0 = max(0, min(self.width - 1, min(sprite.px, int(sprite.x)))) y0 = max(0, min(self.height - 1, min(sprite.py, int(sprite.y)))) x1 = max(1, min(self.width, max(sprite.px, int(sprite.x)) + 16)) y1 = max(1, min(self.height, max(sprite.py, int(sprite.y)) + 16)) if x0 >= x1 or y0 >= y1: continue #display.block(x0 * self.scale, y0 * self.scale, # x1 * self.scale - 1, y1 * self.scale - 1) #_stage.render(x0, y0, x1, y1, layers, self.buffer, # display.spi, self.scale) _stage.render(x0, y0, x1, y1, layers, self.buffer, self.scale) sprite._updated()
def render_block(self, x0=0, y0=0, x1=None, y1=None): if x1 is None: x1 = self.width else: x1 = min(max(1, x1), self.width) if y1 is None: y1 = self.height else: y1 = min(max(1, y1), self.height) x0 = min(max(0, x0), self.width - 1) y0 = min(max(0, y0), self.height - 1) if x0 >= x1 or y0 >= y1: return layers = [l.layer for l in self.layers] _stage.render(x0, y0, x1, y1, layers, self.buffer, self.scale)
def render_sprites(self, sprites): """Update the spots taken by all the sprites in the list.""" layers = [l.layer for l in self.layers] for sprite in sprites: x0 = max(0, min(self.width, min(sprite.px, int(sprite.x)))) y0 = max(0, min(self.height, min(sprite.py, int(sprite.y)))) x1 = max(1, min(self.width, max(sprite.px, int(sprite.x)) + 16)) y1 = max(1, min(self.height, max(sprite.py, int(sprite.y)) + 16)) if x0 == x1 or y0 == y1: continue self.display.block(x0, y0, x1, y1) #print("pxy", sprite.px, sprite.py, "xy", sprite.x, sprite.y) self.display.cs.value = False _stage.render(x0, y0, x1, y1, layers, self.buffer, self.display.spi, 2) self.display.cs.value = True sprite._updated()
def render_block(self, x0=0, y0=0, x1=None, y1=None): if x1 is None: x1 = self.width else: x1 = min(max(1, x1), self.width) if y1 is None: y1 = self.height else: y1 = min(max(1, y1), self.height) x0 = min(max(0, x0), self.width - 1) y0 = min(max(0, y0), self.height - 1) if x0 >= x1 or y0 >= y1: return layers = [l.layer for l in self.layers] with self.display as display: display.block(x0 * self.scale, y0 * self.scale, x1 * self.scale - 1, y1 * self.scale - 1) _stage.render(x0, y0, x1, y1, layers, self.buffer, display.spi, self.scale)
def render(self, x0, y0, x1, y1): """Update a rectangle of the screen.""" layers = [l.layer for l in self.layers] self.display.block(x0, y0, x1 - 1, y1 - 1) _stage.render(x0, y0, x1, y1, layers, self.buffer, self.display.spi)