From: lbcmk <30442978+lbcmk@users.noreply.github.com> Date: Mon, 11 Jul 2022 17:38:18 +0000 (-0400) Subject: Portal now work with Level Maker X-Git-Url: http://git.skullheadx.com/sitemap.xml?a=commitdiff_plain;h=fc9719aa2a983bec5ccfd63f02f355e5e3fae57c;p=Pygame-Jam.git Portal now work with Level Maker --- diff --git a/Function/Portal.py b/Function/Portal.py index 64e2076..5d6d33e 100644 --- a/Function/Portal.py +++ b/Function/Portal.py @@ -23,16 +23,18 @@ class Transition: def update(self): return; - def draw(self, surf, playerPos, playerOffset=[0,0], offsetX=0, offsetY=0): + def draw(self, surf, playerPos, offset=(0,0)): + offsetX = offset[0] + offsetY = offset[1] - 25 coords = getWorldCoords(0, 0) coords[1] += self.portalYAnim a = (((offsetX-self.width/2) + coords[0], offsetY + coords[1]), (offsetX+coords[0], offsetY-self.height/2+coords[1]), (offsetX+self.width/2 + coords[0], offsetY+coords[1]), (offsetX + coords[0], offsetY+self.height/2 + coords[1])) # print(a[0][0], a[1][1], a[2][0], a[3][1]) - # print(playerPos[0]+40, playerPos[1]-250) + # print(playerPos[0], playerPos[1]) - if(a[0][0] < playerPos[0]+playerOffset[0] < a[2][0] and a[1][1] < playerPos[1]+playerOffset[1] < a[3][1]): + if(a[0][0] < playerPos[0]+self.width/2 < a[2][0] and a[1][1] < playerPos[1] < a[3][1]): # self.buttonStage += 0.1 surf.blit(self.buttonImage, (a[0][0]+self.width/4, a[1][1]-(2*self.width/3))) pressed = pg.key.get_pressed() diff --git a/Game.py b/Game.py index ff972be..92f2750 100644 --- a/Game.py +++ b/Game.py @@ -1,24 +1,24 @@ from re import T from regex import F + import Setup -from Setup import * -from Setup import camera_offset -from Player import Player -from Pet import Pet -from Enemy import Enemy from Block import Block -from PhysicsBody import PhysicsBody -from World import World from EndScreen import EndScreen +from Enemy import Enemy +from Function.Fade import fade +from Function.Portal import Transition +from Pet import Pet +from PhysicsBody import PhysicsBody +from Player import Player +from Setup import * +from Setup import camera_offset from UI.DashMeter import DashMeter +from UI.Dialogue import DialogueUI from UI.HealthBar import HealthBar from UI.PotionUI import PotionUI +from World import World -from Function.Portal import Transition -from Function.Fade import fade - -from UI.Dialogue import DialogueUI class Game: @@ -29,7 +29,7 @@ class Game: self.world = World(self.collision_layer) - enemy_positions, player_position = self.world.load_world(level) + enemy_positions, player_position, self.portal_position = self.world.load_world(level) self.player = Player(player_position, self.collision_layer["player"], [self.collision_layer["enemy"], self.collision_layer["world"]], [self.collision_layer["enemy"]]) @@ -78,7 +78,18 @@ class Game: # screen.fill((255,255,255)) sky = pg.image.load("Assets/world/SKY.png") surf.blit(sky,(0,0)) - self.Transition.draw(surf, self.player.position, [40, -250], 120, 625) + + if (self.level == 1): + self.Transition.draw(surf, self.player.position, self.portal_position) + self.dialogue.text = "enemy dialogue" + self.dialogue.draw(surf, get_display_point(self.enemies[0].position)[0] + self.enemies[0].width / 2, + get_display_point(self.enemies[0].position)[1]) + self.dialogue.text = "player dialogue" + self.dialogue.draw(surf, get_display_point(self.player.position)[0] + self.player.width / 2, + get_display_point(self.player.position)[1]) + + if(self.level == 4): + self.Transition.draw(surf, self.player.position, self.portal_position) self.world.draw(surf) for enemy in self.enemies: @@ -89,16 +100,7 @@ class Game: # self.dashMeter.update(self.player.lastDash) # self.dashMeter.draw(surf) self.healthBar.draw(surf, self.player.health) - self.potionUI.draw(surf, self.player.potion_bag, self.player.potion_cooldown) - - if (self.level == 1): - self.Transition.draw(surf, self.player.position, [40, -250], 120, 625) - self.dialogue.text = "enemy dialogue" - self.dialogue.draw(surf, get_display_point(self.enemies[0].position)[0] + self.enemies[0].width / 2, - get_display_point(self.enemies[0].position)[1]) - self.dialogue.text = "player dialogue" - self.dialogue.draw(surf, get_display_point(self.player.position)[0] + self.player.width / 2, - get_display_point(self.player.position)[1]) + self.potionUI.draw(surf, self.player.potion_bag, self.player.potion_cooldown) # print(self.player.get_collision_rect())s # Debug Lines. DO NOT CROSS THEM! diff --git a/World.py b/World.py index 04b7d4e..1c3f108 100644 --- a/World.py +++ b/World.py @@ -13,7 +13,7 @@ class World: with open(path.join("Levels", f'Level{level}.txt'), 'r') as f: file_contents = f.read().split("\n") - out = [[], center] + out = [[], center, "a"] for i in range(0, len(file_contents) - 1, 3): layer = file_contents[i].split("|") pos = file_contents[i + 1].split("|") @@ -29,6 +29,8 @@ class World: out[1] = (x, y) elif t == "ENEMY": out[0].append((x, y)) + elif t == "PORTAL": + out[2] = (x, y) elif f"{t}.png" in listdir("Assets/world/decor"): self.blocks.append(Decor((x,y),self.collision_layer["none"],t)) else: diff --git a/main.py b/main.py index ec8eb85..ab84c27 100644 --- a/main.py +++ b/main.py @@ -14,20 +14,13 @@ is_running = True # scene = TransitionScene() scene = DevLevelSelect() old_level = 0 -level =1 +level = 4 next_level = 0 while is_running: if pg.event.peek(pg.QUIT): is_running = False - if level <= 1: - level = scene.level - try: - next_level = scene.next_level - except: - next_level = 0 - if level == -1: level = old_level old_level = 0 @@ -36,6 +29,8 @@ while is_running: match level: case -4: scene = TransitionScene(next_level) + case -3: + scene = DevLevelSelect() case -2: scene = LevelCreator() case 0: @@ -46,8 +41,17 @@ while is_running: scene = Game(2) case 3: scene = Game(3) + case 4: + scene = Game(4) old_level = level + if level <= 1: + level = scene.level + try: + next_level = scene.next_level + except: + next_level = 0 + scene.update(delta) scene.draw(screen)