X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=tabakrolletjie%2Fturnip.py;h=b1bb5a4571f330027fe0b2ea74491636b60e1560;hb=94ca43faf86e1ee6ab6e15b6da84eaa2d62a0c44;hp=27cb4de9b20c3f3af8da42fe24b347c051fcb8ec;hpb=03a464fef04162e3928750a31e52cf954d5af7c8;p=tabakrolletjie.git diff --git a/tabakrolletjie/turnip.py b/tabakrolletjie/turnip.py index 27cb4de..b1bb5a4 100644 --- a/tabakrolletjie/turnip.py +++ b/tabakrolletjie/turnip.py @@ -3,6 +3,7 @@ import pymunk import pymunk.pygame_util import pygame.display +import pygame.transform from .loader import loader from .constants import TURNIP_CATEGORY, LIGHT_CATEGORY @@ -23,18 +24,23 @@ class Turnip(object): self._age = kwargs.get('age', 0) self._pos = kwargs.get('pos', (0, 0)) space = kwargs.get('space', None) + self._rotation = 90 * (hash(tuple(self._pos)) % 4) self._update_image() + self.eaten = False # Flag for boyd self._body = pymunk.Body(0, 0, pymunk.Body.STATIC) - self._shape = pymunk.Circle(self._body, 16) + self._shape = pymunk.Circle(self._body, 24) self._shape.filter = TURNIP_FILTER self._body.position = pymunk.pygame_util.from_pygame( self._pos, pygame.display.get_surface()) + # Add a reference so space query can get the object + self._body.turnip = self if space.shape_query(self._shape): raise TurnipInvalidPosition() space.add(self._body, self._shape) def _update_image(self): - self._image = loader.load_image('32', 'turnip%d.png' % (self._age + 1)) + self._image = loader.load_image('48', 'turnip%d.png' % (self._age + 1)) + self._image = pygame.transform.rotate(self._image, self._rotation) def render(self, surface): surface.blit(self._image, self._pos, None) @@ -43,13 +49,15 @@ class Turnip(object): return {'age': self._age, 'pos': self._pos} def remove(self): - # FIXME: Remove body from the space - pass + self._body.turnip = None + space = self._body.space + space.remove(self._body, self._shape) def grow(self): self._age += 1 if self._age >= 3: # Mature, so harvest it for seeds + self.remove() return random.randint(1, 3) else: self._update_image()