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