def render_blocks(self, screen, viewport, background): top = max(Convert.pixel_to_world(viewport.y), 0) bottom = min(Convert.pixel_to_world(viewport.y + viewport.height) + 1, World.HEIGHT - 1) for blocky in range(top, bottom): leftData = Convert.pixel_to_chunk(viewport.x) rightData = Convert.pixel_to_chunk(viewport.x + viewport.width) if leftData[1] == self.x: for blockx in range(leftData[0], WIDTH): self.render_block(blockx, blocky, screen, viewport, background) elif leftData[1] < self.x < rightData[1]: for blockx in range(WIDTH): self.render_block(blockx, blocky, screen, viewport, background) elif self.x == rightData[1]: for blockx in range(0, rightData[0] + 1): self.render_block(blockx, blocky, screen, viewport, background)
def render(self, screen, viewport): top = max(Convert.pixel_to_world(viewport.y), 0) bottom = min(Convert.pixel_to_world(viewport.y + viewport.height) + 1, World.HEIGHT) for blocky in range(top, bottom): leftData = Convert.pixel_to_chunk(viewport.x) rightData = Convert.pixel_to_chunk(viewport.x + viewport.width) if leftData[1] == self.x: for blockx in range(leftData[0], WIDTH): self.render_block(self.blocks[blocky][blockx], (blockx, blocky), screen, viewport) elif leftData[1] < self.x < rightData[1]: for blockx in range(WIDTH): self.render_block(self.blocks[blocky][blockx], (blockx, blocky), screen, viewport) elif self.x == rightData[1]: for blockx in range(0, rightData[0] + 1): self.render_block(self.blocks[blocky][blockx], (blockx, blocky), screen, viewport) for entity in self.entities: entity.render(screen, Convert.world_to_viewport(entity.pos, viewport))