From: lbcmk <30442978+lbcmk@users.noreply.github.com> Date: Wed, 13 Jul 2022 17:52:00 +0000 (-0400) Subject: Spawn Skeletons X-Git-Url: http://git.skullheadx.com/nixos/links.html?a=commitdiff_plain;h=e2daa43a0156cb3a8bb364c8d1a1039284e9bf92;p=Pygame-Jam.git Spawn Skeletons --- diff --git a/Enemy.py b/Enemy.py index ea87a3c..1b68aeb 100644 --- a/Enemy.py +++ b/Enemy.py @@ -291,7 +291,8 @@ class King(Actor): self.ranged_attack.append(RangedAttack(target.position + pg.Vector2(0,-400),self.arrow_collision_mask, self.arrow_collision_layer)) self.attack_cooldown = random.randint(5,10) * 1000 else: - print("Summon Skeles!") + self.skeleton_attack = True + self.attack_cooldown = random.randint(5,10) * 1000 # else: diff --git a/Game.py b/Game.py index aa00b82..7fa42d8 100644 --- a/Game.py +++ b/Game.py @@ -78,6 +78,12 @@ class Game: self.skeleton_spawn_frame = pg.transform.scale(pil_to_game(get_gif_frame(Image.open("Assets/skeleton/skeleton_attack.gif"), 0)), (170, 138)) self.skeleton_spawn_coords = [] + skeleton_portal_gif = Image.open("Assets/skeleton/portal.gif") + self.skeleton_portal_gif = [] + for i in range(skeleton_portal_gif.n_frames): + self.skeleton_portal_gif.append(pg.transform.scale(pil_to_game(get_gif_frame(skeleton_portal_gif, i)), (96, 64))) + + self.paused = False self.PauseMenu = PauseMenu(self.level) @@ -175,12 +181,46 @@ class Game: # self.pet.update(delta, self.player, self.camera_pos) def draw(self, surf): + + + # screen.fill((0, 191, 255)) # screen.fill((0, 191, 255)) # screen.fill((255,255,255)) surf.blit(self.sky, (0, 0)) + if (self.level == 5 or self.level == 7): + if self.king is not None: + if self.king.skeleton_attack == True: + for i in range(random.randint(1, 2)): + if(len(self.collision_layer["enemy"]) < 4 and len(self.skeleton_spawn_coords) < 2): + self.skeleton_spawn_coords.append([(random.randint(1100, 2000), random.randint(1900, 2100)), 0]) + self.king.skeleton_attack = False + + for i in range(len(self.skeleton_spawn_coords)): + try: + surf.blit(self.skeleton_portal_gif[self.skeleton_spawn_coords[i][1]], get_display_point((self.skeleton_spawn_coords[i][0][0] + 40, 1849))) + + if(self.skeleton_spawn_coords[i][0][1] <= 1780): + skele = Skeleton(self.skeleton_spawn_coords[i][0], self.collision_layer["enemy"], [self.collision_layer["player"],self.collision_layer["world"],self.collision_layer["enemy"]]) + self.skeletons.append(skele) + self.skeleton_spawn_coords[i][0] = (100000, 100000) + else: + lst = list(self.skeleton_spawn_coords[i][0]) + lst[1] -= 2 + self.skeleton_spawn_coords[i][0] = tuple(lst) + surf.blit(self.skeleton_spawn_frame, get_display_point(self.skeleton_spawn_coords[i][0])) + if(self.skeleton_spawn_coords[i][1] <= 5): + self.skeleton_spawn_coords[i][1] += 1 + + if(self.skeleton_spawn_coords[i][0][0] > 50000 and self.skeleton_spawn_coords[i][0][1] > 50000): + self.skeleton_spawn_coords[i][1] -= 1 + if(self.skeleton_spawn_coords[i][1] >= 0): + self.skeleton_spawn_coords.pop(i) + except IndexError: + pass; + if (self.player.position[1] > 10000): self.player.dead = True @@ -218,26 +258,6 @@ class Game: self.dialogue.draw(surf, self.player, "This treasure is pennies compared to what I'm after...", 10, 3) self.dialogue.draw(surf, self.player, "But this portal will bring me one dimension closer!", 10, 4) - if (self.level == 5): - if self.king is not None: - if self.king.skeleton_attack == True: - for i in range(random.randint(1, 3)): - # if(len(self.collision_layer["enemy"]) < 5 and len(self.skeleton_spawn_coords) < 5): - self.skeleton_spawn_coords.append((random.randint(1100, 2000), random.randint(1900, 2100))) - self.king.skeleton_attack = False - - - for i in range(len(self.skeleton_spawn_coords)): - if(self.skeleton_spawn_coords[i][1] <= 1780): - skele = Skeleton(self.skeleton_spawn_coords[i], self.collision_layer["enemy"], [self.collision_layer["player"],self.collision_layer["world"],self.collision_layer["enemy"]]) - self.skeletons.append(skele) - self.skeleton_spawn_coords.pop(i) - else: - lst = list(self.skeleton_spawn_coords[i]) - lst[1] -= 1 - self.skeleton_spawn_coords[i] = tuple(lst) - surf.blit(self.skeleton_spawn_frame, get_display_point(self.skeleton_spawn_coords[i])) - for enemy in self.enemies: enemy.draw(surf) for enemy in self.skeletons: diff --git a/PauseMenu.py b/PauseMenu.py index 472ef50..c641af8 100644 --- a/PauseMenu.py +++ b/PauseMenu.py @@ -11,8 +11,8 @@ class PauseMenu: self.subtitle = createText(X, Y - 150, 60, (255, 255, 255), "Regular", "Pause Menu", 'c') self.resume = createText(X, Y + 100, 30, (255, 255, 255), "Regular", "Resume", 'c') - self.main_menu = createText(X, Y + 200, 30, (255, 255, 255), "Regular", "Main Menu", 'c') - self.quit = createText(X, Y + 300, 30, (255, 255, 255), "Regular", "Quit", 'c') + self.main_menu = createText(X, Y + 300, 30, (255, 255, 255), "Regular", "Main Menu", 'c') + self.quit = createText(X, Y + 500, 30, (255, 255, 255), "Regular", "Quit", 'c') self.overlay = pg.Surface((1080, 640)) self.overlay.fill((0, 0 ,0)) self.overlay.set_alpha(127) diff --git a/PhysicsBody.py b/PhysicsBody.py index fad56cc..28a441c 100644 --- a/PhysicsBody.py +++ b/PhysicsBody.py @@ -33,8 +33,8 @@ class PhysicsBody: self.display = pg.transform.scale(pg.image.load("Assets/enemy/Goon_Death.png"), (200,200)) self.offset = pg.Vector2(-50,-65) else: - self.display = pg.transform.scale(pg.image.load("Assets/skeleton/SKELETON.png"), (100,100)) - self.offset = pg.Vector2(0,-self.display.get_height()/2) + self.display = pg.transform.scale(pg.image.load("Assets/skeleton/SKELETON.png"), (50,50)) + self.offset = pg.Vector2(0, 10) def update(self, delta, test=None, test2=None): if self.on_ground: