import pymunk.pygame_util
import pygame.draw
import pygame.surface
+from pygame.math import Vector2
from .constants import (SCREEN_SIZE, OBSTACLE_CATEGORY)
from .loader import loader
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))
-
+ self._image.fill((0, 0, 0, 0))
+
for shape in self.shapes:
pygame_poly = [
pymunk.pygame_util.to_pygame(v, self._image) for v in
shape.get_vertices()]
pygame.draw.polygon(self._image, (255, 255, 255), pygame_poly)
-
- wall_texture = loader.load_image("textures", "stone.png").convert_alpha()
+
+ wall_texture = loader.load_image(
+ "textures", "stone.png").convert_alpha()
self._image.blit(wall_texture, (0, 0), None, pgl.BLEND_RGBA_MULT)
-
+
+ return self._image
+
+ 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:
+ vec = Vector2(0, int(r))
+ STEPS = 18
+ vertices = [
+ vec.rotate(angle) + (x, y)
+ for angle in range(0, 360, 360/STEPS)]
+ vertices = [(v.x, v.y) for v in vertices]
+
+ self.shapes.append(pymunk.Poly(self.body, vertices))
+ self.shrublets = shrublets
+ 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 (x, y, r) in self.shrublets:
+ centre = pymunk.pygame_util.to_pygame((x, y), self._image)
+ pygame.draw.circle(self._image, (255, 255, 255), centre, r)
+
+ 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):