X-Git-Url: https://git.ctpug.org.za/?p=erdslangetjie.git;a=blobdiff_plain;f=erdslangetjie%2Fplayer.py;h=5bb6472b1b88fca7b942d28a60e97e8eb35690ff;hp=2f8def2976ae4bf0c7e1dabb6d295c2702108996;hb=ae83360a244732dabac64083f6915fc301d583f7;hpb=829e0a7481bab4f2deb9b658b6fa4517c6e905e2 diff --git a/erdslangetjie/player.py b/erdslangetjie/player.py index 2f8def2..5bb6472 100644 --- a/erdslangetjie/player.py +++ b/erdslangetjie/player.py @@ -3,33 +3,59 @@ from erdslangetjie.data import load_image -class PlayerSprite(object): +class GameSprite(object): def __init__(self): self.pos = (0, 0) self.sprite = None - def move(self, direction): - self.pos = (self.pos[0] + direction[0], self.pos[1] + direction[1]) + def get_image(self): + return self.sprite + + def get_texture(self): + return self.sprite.texture + + +class FigureSprite(GameSprite): def can_move(self, direction, level): '''Check if we can move in the given direction''' cand_pos = (self.pos[0] + direction[0], self.pos[1] + direction[1]) return not level.blocked(cand_pos) - def get_image(self): - return self.sprite - -class ThePlayer(PlayerSprite): +class ThePlayer(FigureSprite): def __init__(self): super(ThePlayer, self).__init__() self.sprite = load_image('sprites/player.png') + def move(self, direction, level): + if self.can_move(direction, level): + self.pos = (self.pos[0] + direction[0], self.pos[1] + direction[1]) + return True + return False -class Nemesis(PlayerSprite): + +class Nemesis(FigureSprite): def __init__(self): - super(ThePlayer, self).__init__() + super(Nemesis, self).__init__() self.sprite = load_image('sprites/nemesis.png') + self.reset_pos() + + def move(self, level): + if not self.on_board(): + # Advance towards the map a step at a time + self.pos = (self.pos[0] + 1, self.pos[1]) + if self.on_board(): + self.pos = level.enter_pos + return False + # AI goes here + return True + + def reset_pos(self): + self.pos = (-10, 0) + + def on_board(self): + return self.pos[0] >= 0