From 6aa6512d8c85e1a090b88c0b910ea7e13f4ddd9a Mon Sep 17 00:00:00 2001 From: adrianna Date: Sat, 10 Sep 2016 13:41:02 +0200 Subject: [PATCH] shrub achieved --- data/stations/station-alpha.json | 6 ++++++ tabakrolletjie/obstacles.py | 26 ++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/data/stations/station-alpha.json b/data/stations/station-alpha.json index 07f23e9..4678e6c 100644 --- a/data/stations/station-alpha.json +++ b/data/stations/station-alpha.json @@ -23,6 +23,12 @@ "vertices": [ [200, 350], [250, 350], [250, 400], [200, 400] ] + }, + { + "type": "shrub", + "shrublets": [ + [600, 100, 50], [700, 200, 100] + ] } ], "lights": [ diff --git a/tabakrolletjie/obstacles.py b/tabakrolletjie/obstacles.py index bae1c1d..9adb803 100644 --- a/tabakrolletjie/obstacles.py +++ b/tabakrolletjie/obstacles.py @@ -79,3 +79,29 @@ class Wall(BaseObstacle): def render(self, surface): surface.blit(self.get_image(), (0, 0), None, 0) + + +class Shrub(BaseObstacle): + + def __init__(self, shrublets): + super(Shrub, self).__init__() + for [x, y, r] in shrublets: + self.shapes.append(pymunk.Circle(self.body, r, offset=(x, y))) + self._image = None + + def get_image(self): + if self._image is None: + self._image = pygame.surface.Surface(SCREEN_SIZE).convert_alpha() + self._image.fill((0,0,0,0)) + + for shape in self.shapes: + centre = pymunk.pygame_util.to_pygame(shape.offset, self._image) + pygame.draw.circle(self._image, (255, 255, 255), centre, int(shape.radius)) + + shrub_texture = loader.load_image("textures", "shrub.png").convert_alpha() + self._image.blit(shrub_texture, (0, 0), None, pgl.BLEND_RGBA_MULT) + + return self._image + + def render(self, surface): + surface.blit(self.get_image(), (0, 0), None, 0) -- 2.34.1