示例#1
0
    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
示例#2
0
    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
示例#3
0
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")
示例#4
0
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")