Mercurial > skaapsteker
diff scripts/level-editor @ 40:fa1bb94cfa76
Re-factor drawing to blit to a clip rect in the One True Level Surface before blitting that to the screen.
author | Simon Cross <hodgestar@gmail.com> |
---|---|
date | Sun, 03 Apr 2011 20:24:47 +0200 |
parents | 38d2f7c43d86 |
children | 4a9e26f1f35a |
line wrap: on
line diff
--- a/scripts/level-editor Sun Apr 03 20:24:17 2011 +0200 +++ b/scripts/level-editor Sun Apr 03 20:24:47 2011 +0200 @@ -19,8 +19,9 @@ def run(levelname): clock = pygame.time.Clock() - surface = pygame.display.get_surface() + screen_surface = pygame.display.get_surface() level = Level(levelname) + level_surface = level.get_surface() position = [0, 0] while True: events = pygame.event.get() @@ -47,7 +48,11 @@ position[1] = max(position[1], 0) position[1] = min(position[1], level.pixel_size[1] - SCREEN[1]) - level.draw(surface, position) + clip_rect = pygame.Rect(position, screen_surface.get_size()) + level_surface.set_clip(clip_rect) + level.draw(level_surface) + screen_surface.blit(level_surface, (0, 0), area=clip_rect) + pygame.display.flip() clock.tick(FRAMERATE)