self._moulds = [seed]
self._image = pygame.surface.Surface(SCREEN_SIZE)
self._image.convert_alpha(pygame.display.get_surface())
+ self._draw_moulds()
+
+ def _draw_moulds(self):
self._image.fill((0, 0, 0, 0))
- self._image.blit(seed.get_image(),
- seed.pygame_pos(self._image), None,
- pgl.BLEND_RGBA_ADD)
+ for m in self._moulds:
+ self._image.blit(m.get_image(),
+ m.pygame_pos(self._image), None,
+ pgl.BLEND_RGBA_ADD)
def tick(self, gamestate, space, lights):
redraw = False
if mould.tick(gamestate, space, self._moulds):
redraw = True
# Check for damage
- if lights.lit_by(mould.position):
+ lit_by = lights.light_query(mould._shape)
+ for light in lit_by:
+ # Todo: extract colour and intensity from light
if mould.damage(None, None, space, self._moulds):
redraw = True
+ break # we only die once
if redraw:
- self._image.fill((0, 0, 0, 0))
- for mould in self._moulds:
- self._image.blit(mould.get_image(),
- mould.pygame_pos(self._image), None,
- pgl.BLEND_RGBA_ADD)
+ self._draw_moulds()
def render(self, surface):
"""Draw ourselves"""