From: lbcmk <30442978+lbcmk@users.noreply.github.com> Date: Wed, 13 Jul 2022 22:42:58 +0000 (-0400) Subject: PET X-Git-Url: http://git.skullheadx.com/projects/suckless.html?a=commitdiff_plain;h=f3edf6724b4c391ae7d0ce7833439867c0731ec4;p=Pygame-Jam.git PET --- diff --git a/Game.py b/Game.py index 7874716..a8f15a7 100644 --- a/Game.py +++ b/Game.py @@ -64,7 +64,11 @@ class Game: self.collision_layer["potion"], self.collision_layer["spike"], self.collision_layer["arrow"]) - self.pet = Pet(center, self.collision_layer["pet"], [self.collision_layer["world"]]) + if(level == 1): + self.pet = Pet([6852, 1500], self.collision_layer["pet"], [self.collision_layer["world"]]) + else: + self.pet = Pet(self.player.position, self.collision_layer["pet"], [self.collision_layer["world"]]) + self.has_pet = False self.enemies = [Enemy(pos, self.collision_layer["enemy"], [self.collision_layer["player"], self.collision_layer["world"], self.collision_layer["enemy"]]) for pos in @@ -142,7 +146,6 @@ class Game: # self.test = RangedAttack((1650,1250),self.collision_layer["world"], self.collision_layer["arrow"]) if(self.level == 4): self.portal_position = (5475, 2400) - # def load_world(self, level): def update(self, delta): @@ -158,7 +161,7 @@ class Game: Setup.camera_offset = self.player.update(delta) Setup.camera_offset.x = max(0, min(Setup.camera_offset.x, MAP_WIDTH - SCREEN_WIDTH)) Setup.camera_offset.y = max(0, min(Setup.camera_offset.y, MAP_HEIGHT - SCREEN_HEIGHT)) - + for i, enemy in enumerate(self.enemies): enemy.update(delta, self.player) if enemy.dead: @@ -240,11 +243,11 @@ class Game: self.bosshealthBar.update() if self.level == 1: - print(self.player.position) + # print(self.player.position) if self.player.position[0] > 6750 and self.player.position[1] >= 1500: - self.player.has_pet = True + self.has_pet = True - if self.player.has_pet == True: + if self.has_pet == True: self.pet.update(delta, self.player) #update pet @@ -327,6 +330,8 @@ class Game: except: pass; + self.pet.draw(surf, self.player.position) + if (self.level == 1): # self.dialogue.draw(surf, self.enemies[0], "enemy dialogue") self.dialogue.draw(surf, self.player, "Press A or D to move.", 400, 0, 900, 1800) @@ -414,7 +419,6 @@ class Game: # Debug Lines. DO NOT CROSS THEM! # pg.draw.line(surf, (255, 0, 0), -Setup.camera_offset, pg.Vector2(SCREEN_WIDTH, -Setup.camera_offset.y), 10) # pg.draw.line(surf, (255, 0, 0), -Setup.camera_offset, pg.Vector2(-Setup.camera_offset.x, SCREEN_HEIGHT), 10) - self.pet.draw(surf, self.player.position) if (self.fade == True): self.fadeT.update(True) @@ -436,6 +440,10 @@ class Game: self.scene.update() self.scene.draw() - if self.player.has_pet == True: - pass + # print(get_display_point(self.player.position)) + # print(self.player.position) + + # if self.player.has_pet == True: + # self.pet.draw(surf, self.player.position) + # pass #draw pet diff --git a/MainMenu.py b/MainMenu.py index 8892853..5d83d49 100644 --- a/MainMenu.py +++ b/MainMenu.py @@ -26,6 +26,8 @@ class Menu: except: pass; + has_pet = False; + def update(self, delta): for ev in pg.event.get(pg.MOUSEBUTTONDOWN): if ev.type == pg.MOUSEBUTTONDOWN: diff --git a/Pet.py b/Pet.py index 1d41605..36bebe7 100644 --- a/Pet.py +++ b/Pet.py @@ -24,8 +24,18 @@ class Pet(Actor): self.position, self.velocity = self.move_and_collide(self.position, self.velocity, delta) def draw(self, surf, plpos=0): - surf.blit(self.move_frames[math.floor(self.frame)], get_display_rect(self.get_collision_rect())) - # self.position = plpos + + 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) + 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 diff --git a/main.py b/main.py index 747a8b4..5f0384a 100644 --- a/main.py +++ b/main.py @@ -16,9 +16,11 @@ delta = 1000//fps # scene = TransitionScene() scene = Menu() old_level = 0 -level = 1 +level = 2 next_level = 0 +has_snake = True; + # final_level = 6 while Setup.is_running: @@ -53,6 +55,17 @@ while Setup.is_running: except: next_level = 0 + if level == 1: + try: + has_snake = scene.has_pet + except: + pass; + elif(1 < level < 5): + try: + scene.has_pet = has_snake + except: + pass; + scene.update(delta) scene.draw(screen)