summaryrefslogtreecommitdiffstats
path: root/Pet.py
blob: 1ffc577e96f515070e2fd7d65d9753fd9867feb7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
from Setup import *
from Actors import Actor
from Player import Player

class Pet(Actor):
    width,height = 35,25
    speed = Player.speed * 0.75
    jump_strength = Player.jump_strength / 2

    move_gif = Image.open("Assets/SNAKE.gif")
    move_frames = []
    for i in range(move_gif.n_frames):
        move_frames.append(pg.transform.scale(pil_to_game(get_gif_frame(move_gif, i)), (50, 50)))

    def __init__(self, pos, collision_layer, collision_mask):
        super().__init__(pos, collision_layer, collision_mask)
        self.frame = 0
        self.has_pet = False;
    
    def update(self, delta, target):
        super().update(delta)

        self.follow_target(target, stop_dist=70)

        self.position, self.velocity = self.move_and_collide(self.position, self.velocity, delta)

    def draw(self, surf, plpos=0):

        d_off = pg.Vector2(0, -10)

        display = self.move_frames[math.floor(self.frame)]
        if(self.velocity[0] > 0):
            display = pg.transform.flip(display, True, False)

        surf.blit(display, get_display_rect(self.get_collision_rect()).topleft + d_off)
        if(self.has_pet == True):
            diff = self.position - plpos
            if(abs(diff[0]) >= 1500 or abs(diff[1]) >= 1000):
                self.position = plpos

        if(self.frame + 0.1 < len(self.move_frames)):
            self.frame += 0.08
        else: self.frame = 0