annotate gamelib/animal.py @ 28:ac3a74352b74

Change animal.py to four space indents.
author Simon Cross <hodgestar@gmail.com>
date Sun, 30 Aug 2009 18:23:40 +0000
parents 6d6ab0c1479d
children 2e88c680672c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25
6d6ab0c1479d Add placing some chickens and foxes
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
1 """Class for the various animals in the game"""
6d6ab0c1479d Add placing some chickens and foxes
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
2
6d6ab0c1479d Add placing some chickens and foxes
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
3 import pygame
6d6ab0c1479d Add placing some chickens and foxes
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
4 from pgu.vid import Sprite
6d6ab0c1479d Add placing some chickens and foxes
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
5
6d6ab0c1479d Add placing some chickens and foxes
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
6 import data
6d6ab0c1479d Add placing some chickens and foxes
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
7
6d6ab0c1479d Add placing some chickens and foxes
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
8 class Animal(Sprite):
28
ac3a74352b74 Change animal.py to four space indents.
Simon Cross <hodgestar@gmail.com>
parents: 25
diff changeset
9 """Base class for animals"""
25
6d6ab0c1479d Add placing some chickens and foxes
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
10
28
ac3a74352b74 Change animal.py to four space indents.
Simon Cross <hodgestar@gmail.com>
parents: 25
diff changeset
11 def __init__(self, image, pos):
ac3a74352b74 Change animal.py to four space indents.
Simon Cross <hodgestar@gmail.com>
parents: 25
diff changeset
12 Sprite.__init__(self, image, pos)
ac3a74352b74 Change animal.py to four space indents.
Simon Cross <hodgestar@gmail.com>
parents: 25
diff changeset
13 self.pos = pos
25
6d6ab0c1479d Add placing some chickens and foxes
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
14
28
ac3a74352b74 Change animal.py to four space indents.
Simon Cross <hodgestar@gmail.com>
parents: 25
diff changeset
15 def loop(self, tv, _sprite):
ac3a74352b74 Change animal.py to four space indents.
Simon Cross <hodgestar@gmail.com>
parents: 25
diff changeset
16 ppos = tv.tile_to_view(self.pos)
ac3a74352b74 Change animal.py to four space indents.
Simon Cross <hodgestar@gmail.com>
parents: 25
diff changeset
17 self.rect.x = ppos[0]
ac3a74352b74 Change animal.py to four space indents.
Simon Cross <hodgestar@gmail.com>
parents: 25
diff changeset
18 self.rect.y = ppos[1]
25
6d6ab0c1479d Add placing some chickens and foxes
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
19
28
ac3a74352b74 Change animal.py to four space indents.
Simon Cross <hodgestar@gmail.com>
parents: 25
diff changeset
20 def move(self, state):
ac3a74352b74 Change animal.py to four space indents.
Simon Cross <hodgestar@gmail.com>
parents: 25
diff changeset
21 """Given the game state, return a new position for the object"""
ac3a74352b74 Change animal.py to four space indents.
Simon Cross <hodgestar@gmail.com>
parents: 25
diff changeset
22 # Default is not to move
ac3a74352b74 Change animal.py to four space indents.
Simon Cross <hodgestar@gmail.com>
parents: 25
diff changeset
23 return self.pos
25
6d6ab0c1479d Add placing some chickens and foxes
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
24
6d6ab0c1479d Add placing some chickens and foxes
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
25 class Chicken(Animal):
28
ac3a74352b74 Change animal.py to four space indents.
Simon Cross <hodgestar@gmail.com>
parents: 25
diff changeset
26 """A chicken"""
25
6d6ab0c1479d Add placing some chickens and foxes
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
27
28
ac3a74352b74 Change animal.py to four space indents.
Simon Cross <hodgestar@gmail.com>
parents: 25
diff changeset
28 def __init__(self, pos):
ac3a74352b74 Change animal.py to four space indents.
Simon Cross <hodgestar@gmail.com>
parents: 25
diff changeset
29 image = pygame.image.load(data.filepath('sprites/chkn.png'))
ac3a74352b74 Change animal.py to four space indents.
Simon Cross <hodgestar@gmail.com>
parents: 25
diff changeset
30 Animal.__init__(self, image, pos)
25
6d6ab0c1479d Add placing some chickens and foxes
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
31
28
ac3a74352b74 Change animal.py to four space indents.
Simon Cross <hodgestar@gmail.com>
parents: 25
diff changeset
32 def move(self, gameboard):
ac3a74352b74 Change animal.py to four space indents.
Simon Cross <hodgestar@gmail.com>
parents: 25
diff changeset
33 """A free chicken will move away from other free chickens"""
ac3a74352b74 Change animal.py to four space indents.
Simon Cross <hodgestar@gmail.com>
parents: 25
diff changeset
34 return self.pos
25
6d6ab0c1479d Add placing some chickens and foxes
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
35
6d6ab0c1479d Add placing some chickens and foxes
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
36 class Egg(Animal):
28
ac3a74352b74 Change animal.py to four space indents.
Simon Cross <hodgestar@gmail.com>
parents: 25
diff changeset
37 """An egg"""
25
6d6ab0c1479d Add placing some chickens and foxes
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
38
28
ac3a74352b74 Change animal.py to four space indents.
Simon Cross <hodgestar@gmail.com>
parents: 25
diff changeset
39 # Eggs don't move
25
6d6ab0c1479d Add placing some chickens and foxes
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
40
6d6ab0c1479d Add placing some chickens and foxes
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
41 class Fox(Animal):
28
ac3a74352b74 Change animal.py to four space indents.
Simon Cross <hodgestar@gmail.com>
parents: 25
diff changeset
42 """A fox"""
25
6d6ab0c1479d Add placing some chickens and foxes
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
43
28
ac3a74352b74 Change animal.py to four space indents.
Simon Cross <hodgestar@gmail.com>
parents: 25
diff changeset
44 def __init__(self, pos):
ac3a74352b74 Change animal.py to four space indents.
Simon Cross <hodgestar@gmail.com>
parents: 25
diff changeset
45 image = pygame.image.load(data.filepath('sprites/fox.png'))
ac3a74352b74 Change animal.py to four space indents.
Simon Cross <hodgestar@gmail.com>
parents: 25
diff changeset
46 Animal.__init__(self, image, pos)
ac3a74352b74 Change animal.py to four space indents.
Simon Cross <hodgestar@gmail.com>
parents: 25
diff changeset
47
ac3a74352b74 Change animal.py to four space indents.
Simon Cross <hodgestar@gmail.com>
parents: 25
diff changeset
48 def move(self, gameboard):
ac3a74352b74 Change animal.py to four space indents.
Simon Cross <hodgestar@gmail.com>
parents: 25
diff changeset
49 """Foxes will aim to move towards the closest henhouse or free
25
6d6ab0c1479d Add placing some chickens and foxes
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
50 chicken"""
28
ac3a74352b74 Change animal.py to four space indents.
Simon Cross <hodgestar@gmail.com>
parents: 25
diff changeset
51 return self.pos