Mercurial > rinkhals
comparison gamelib/imagecache.py @ 181:7e556ef40100
Lighten help screen. Fix some oddities in darken modifier.
author | Simon Cross <hodgestar@gmail.com> |
---|---|
date | Fri, 04 Sep 2009 16:48:01 +0000 |
parents | 7bb8d9d6858a |
children | f06010d34cd3 |
comparison
equal
deleted
inserted
replaced
180:c0cad267222b | 181:7e556ef40100 |
---|---|
54 self._cache[key] = image | 54 self._cache[key] = image |
55 return image | 55 return image |
56 | 56 |
57 # modifiers | 57 # modifiers |
58 | 58 |
59 from pygame.locals import BLEND_RGBA_MULT, BLEND_MULT | 59 from pygame.locals import BLEND_MULT, BLEND_ADD |
60 NIGHT_COLOUR = (100.0, 100.0, 200.0, 255.0) | 60 NIGHT_COLOUR = (100.0, 100.0, 200.0, 255.0) |
61 DARKEN_COLOUR = (100.0, 100.0, 100.0, 255.0) | 61 DARKEN_COLOUR = (100.0, 100.0, 100.0, 255.0) |
62 LIGHTEN_COLOUR = (200.0, 200.0, 200.0, 225.0) | |
62 | 63 |
63 def convert_to_night(image): | 64 def convert_to_night(image): |
64 """Convert a day tile to a night tile.""" | 65 """Convert a day tile to a night tile.""" |
65 night_image = image.copy() | 66 night_image = image.copy() |
66 night_image.fill(NIGHT_COLOUR, None, BLEND_RGBA_MULT) | 67 night_image.fill(NIGHT_COLOUR, None, BLEND_MULT) |
67 return night_image | 68 return night_image |
68 | 69 |
69 def convert_to_right_facing(image): | 70 def convert_to_right_facing(image): |
70 right_facing_image = image.copy() | 71 right_facing_image = image.copy() |
71 right_facing_image = pygame.transform.flip(right_facing_image, 1, 0) | 72 right_facing_image = pygame.transform.flip(right_facing_image, 1, 0) |
72 return right_facing_image | 73 return right_facing_image |
73 | 74 |
74 def darken_center(image): | 75 def darken_center(image): |
75 darkened = image.copy() | 76 darkened = image.copy() |
76 w, h = darkened.get_size() | 77 w, h = darkened.get_size() |
77 w, h = int(w*0.5), int(h*0.5) | 78 over_w, over_h = int(w*0.5), int(h*0.5) |
78 x, y = int(w*0.5), int(h*0.5) | 79 over_x, over_y = int(w*0.25), int(h*0.25) |
79 overlay = pygame.Surface((w, h)) | 80 overlay = pygame.Surface((over_w, over_h)) |
80 overlay.fill(DARKEN_COLOUR) | 81 overlay.fill(DARKEN_COLOUR) |
81 darkened.blit(overlay, (x,y), None, BLEND_MULT) | 82 darkened.blit(overlay, (over_x, over_y), None, BLEND_MULT) |
82 return darkened | 83 return darkened |
84 | |
85 def lighten_most(image): | |
86 lighten = image.copy() | |
87 w, h = lighten.get_size() | |
88 over_w, over_h = int(w*0.9), int(h*0.9) | |
89 over_x, over_y = int(w*0.05), int(h*0.05) | |
90 overlay = pygame.Surface((over_w, over_h)) | |
91 overlay.fill(LIGHTEN_COLOUR) | |
92 lighten.blit(overlay, (over_x, over_y), None, BLEND_ADD) | |
93 return lighten | |
83 | 94 |
84 # globals | 95 # globals |
85 | 96 |
86 cache = ImageCache() | 97 cache = ImageCache() |
87 cache.register_modifier("night", convert_to_night) | 98 cache.register_modifier("night", convert_to_night) |
88 cache.register_modifier("right_facing", convert_to_right_facing) | 99 cache.register_modifier("right_facing", convert_to_right_facing) |
89 cache.register_modifier("darken_center", darken_center) | 100 cache.register_modifier("darken_center", darken_center) |
101 cache.register_modifier("lighten_most", lighten_most) | |
90 load_image = cache.load_image | 102 load_image = cache.load_image |