class Player(Entity): WALK_SPEED = 3 def __init__(self, pos, anim_set): Entity.__init__(self, pos) self.money = 0 self.hp = 25 self.maxhp = 25 self.invpos = -665 self.animator = Animator(anim_set, Animator.MODE_LOOP, 15.0) self.animator.setAnim("idle") self.mouseoffset = 0 self.invdock = False self.inventory = [] #Greater food = More hungry; 100 = Starving; 50 = Indifferent; 0 = Very Full; (0-25 Could possibly give a buff) self.food = 50 def give(self, item, quant): #give items for x in range(quant): self.inventory.append(item) #auto stack stack = self.inventory.count(item) self.inventory = list(set(self.inventory)) self.inventory[self.inventory.index(item)].stack = stack def take(self, item, quant): #take items for x in self.inventory: if x.name == item: x.stack -= quant print x.stack def update(self, dt): k = pygame.key.get_pressed() # Only update player anim with actual movement if k[K_e]: for x in self.inventory: print "FOOD B4:" + str(self.food) x.Use() self.take("apple", 1) print "FOOD AFRTER:" + str(self.food) if k[K_w]: self.pos.y -= Player.WALK_SPEED self.animator.update(dt) elif k[K_s]: self.pos.y += Player.WALK_SPEED self.animator.update(dt) if k[K_a]: self.pos.x -= Player.WALK_SPEED self.animator.update(dt) elif k[K_d]: self.pos.x += Player.WALK_SPEED self.animator.update(dt) def render(self, surf, offset=None): screen_pos = self.pos + offset if offset else self.pos self.animator.render(surf, screen_pos.intArgs()) def lookAt(self, pos): # Determine direction d = pos - self.pos frame = 0 if d.x >= d.y: frame = 1 if d.x >= -d.y else 3 else: frame = 0 if d.x >= -d.y else 2 #Determine which anim set to use. if frame == 3: self.animator.setAnim("walk_up") if frame == 2: self.animator.setAnim("walk_left") if frame == 1: self.animator.setAnim("walk_right") if frame == 0: self.animator.setAnim("walk_down")
class Player(Entity): WALK_SPEED = 3 def __init__(self, pos, anim_set): Entity.__init__(self, pos) self.money = 0 self.hp = 25 self.maxhp = 25 self.invpos = -665 self.animator = Animator(anim_set, Animator.MODE_LOOP, 15.0) self.animator.setAnim("idle") self.mouseoffset = 0 self.invdock = False self.inventory = [] #Greater food = More hungry; 100 = Starving; 50 = Indifferent; 0 = Very Full; (0-25 Could possibly give a buff) self.food = 50 def give(self,item,quant): #give items for x in range(quant): self.inventory.append(item) #auto stack stack = self.inventory.count(item) self.inventory=list(set(self.inventory)) self.inventory[self.inventory.index(item)].stack = stack def take(self,item,quant): #take items for x in self.inventory: if x.name == item: x.stack-=quant print x.stack def update(self, dt): k = pygame.key.get_pressed() # Only update player anim with actual movement if k[K_e]: for x in self.inventory: print "FOOD B4:" + str(self.food) x.Use() self.take("apple",1) print "FOOD AFRTER:" + str(self.food) if k[K_w]: self.pos.y -= Player.WALK_SPEED self.animator.update(dt) elif k[K_s]: self.pos.y += Player.WALK_SPEED self.animator.update(dt) if k[K_a]: self.pos.x -= Player.WALK_SPEED self.animator.update(dt) elif k[K_d]: self.pos.x += Player.WALK_SPEED self.animator.update(dt) def render(self, surf, offset = None): screen_pos = self.pos + offset if offset else self.pos self.animator.render(surf, screen_pos.intArgs()) def lookAt(self, pos): # Determine direction d =pos - self.pos frame = 0 if d.x >= d.y: frame = 1 if d.x >= -d.y else 3 else: frame = 0 if d.x >= -d.y else 2 #Determine which anim set to use. if frame == 3: self.animator.setAnim("walk_up") if frame == 2: self.animator.setAnim("walk_left") if frame == 1: self.animator.setAnim("walk_right") if frame == 0: self.animator.setAnim("walk_down")