コード例 #1
0
 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)
コード例 #2
0
ファイル: stage.py プロジェクト: junbowu/micropython-stage
 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)
コード例 #3
0
 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()
コード例 #4
0
 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()
コード例 #5
0
 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)
コード例 #6
0
 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()
コード例 #7
0
 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)
コード例 #8
0
 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)