From: Skullheadx <704277@pdsb.net> Date: Mon, 11 Jul 2022 19:49:50 +0000 (-0400) Subject: fixed collision bugs X-Git-Url: http://git.skullheadx.com/nixos/static/git-favicon.png?a=commitdiff_plain;h=42d09736bfe757a4b0fb29e4cd7087d4ccd05454;p=Pygame-Jam.git fixed collision bugs --- diff --git a/Actors.py b/Actors.py index 52ea841..1a24e16 100644 --- a/Actors.py +++ b/Actors.py @@ -91,6 +91,7 @@ class Actor: self.invincibility_frames = self.invincibility_time def follow_target(self, node, follow_range=100000, stop_dist=115): + return # if stop_dist is None: # stop_dist = max(self.height, self.width) * 1.5 @@ -177,15 +178,15 @@ class Actor: if area.is_colliding(thing): area.signal(thing) if collision_rect.colliderect(thing.get_collision_rect()): - if vel.y > 0: + if vel.y >= 0: pos.y = thing.position.y - self.height vel.y = min(vel.y, 0) self.on_ground = True self.coyote_time = datetime.utcnow() elif vel.y < 0: pos.y = thing.position.y + thing.height - # vel.y = max(vel.y, 0) - # collision_rect = self.get_collision_rect(pos) + vel.y = max(vel.y, 0) + collision_rect = self.get_collision_rect(pos) return pos, vel def get_collision_rect(self, pos=None): diff --git a/Assets/world/decor/BRONZECOIN.png b/Assets/world/decor/BRONZECOIN.png new file mode 100644 index 0000000..03af0db Binary files /dev/null and b/Assets/world/decor/BRONZECOIN.png differ diff --git a/Assets/world/decor/GOLDCOIN.png b/Assets/world/decor/GOLDCOIN.png new file mode 100644 index 0000000..4192fc1 Binary files /dev/null and b/Assets/world/decor/GOLDCOIN.png differ diff --git a/Assets/world/decor/JEWEL.png b/Assets/world/decor/JEWEL.png new file mode 100644 index 0000000..10361a6 Binary files /dev/null and b/Assets/world/decor/JEWEL.png differ diff --git a/Assets/world/decor/SILVERCOIN.png b/Assets/world/decor/SILVERCOIN.png new file mode 100644 index 0000000..e645069 Binary files /dev/null and b/Assets/world/decor/SILVERCOIN.png differ diff --git a/Enemy.py b/Enemy.py index a5d4030..c6a3df4 100644 --- a/Enemy.py +++ b/Enemy.py @@ -6,7 +6,6 @@ from Weapon import Melee class Enemy(Actor): - width, height = 50, 100 speed = Actor.speed * 0.5 # jump_strength = Actor.jump_strength * 0.5 colour = (235, 64, 52) @@ -28,6 +27,8 @@ class Enemy(Actor): self.weapon = Melee(self.position, (-Melee.width / 2 + 7, Melee.height / 2 + self.height / 3 - 8), (-5, Melee.height), self.width, -1, -10) + self.buffer = [] + def update(self, delta, target=None): super().update(delta) if not self.attacked and target is not None and self.dizzy_time == 0: @@ -59,4 +60,8 @@ class Enemy(Actor): def draw(self, surf): self.weapon.draw(surf) super(Enemy, self).draw(surf) + + # for b in self.buffer: + # pg.draw.rect(surf,(0,0,255),b,3) + # self.buffer.append(get_display_rect(self.get_collision_rect())) # pg.draw.rect(surf, (0, 255, 0), get_display_rect(self.get_collision_rect()), 2) diff --git a/Game.py b/Game.py index b6f5fb4..569e984 100644 --- a/Game.py +++ b/Game.py @@ -23,16 +23,17 @@ from World import World class Game: def __init__(self, level): - self.collision_layer = {"none": set(), "world": set(), "player": set(), "enemy": set(), "pet": set()} + self.collision_layer = {"none": set(), "world": set(), "player": set(), "enemy": set(), "pet": set(), "body":set()} # self.load_world(level) self.world = World(self.collision_layer) 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"]]) + [self.collision_layer["enemy"], self.collision_layer["body"]]) # self.pet = Pet(center, self.collision_layer["pet"], [self.collision_layer["world"]]) self.enemies = [Enemy(pos, self.collision_layer["enemy"], [self.collision_layer["player"], self.collision_layer["world"]]) for pos in @@ -62,9 +63,9 @@ class Game: enemy.update(delta, self.player) if enemy.dead: self.enemies[i] = PhysicsBody(enemy.position, enemy.velocity, enemy.width, enemy.height, enemy.colour, - enemy.collision_layer, enemy.collision_mask) + self.collision_layer["body"], [self.collision_layer["world"], self.collision_layer["body"]]) self.collision_layer["enemy"].remove(enemy) - self.collision_layer["enemy"].add(self.enemies[i]) + self.collision_layer["body"].add(self.enemies[i]) self.world.update(delta) self.fade = self.Transition.fade @@ -72,7 +73,7 @@ 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((0, 191, 255)) # screen.fill((255,255,255)) diff --git a/Levels/Level4.txt b/Levels/Level4.txt index c60b00e..666c11c 100644 --- a/Levels/Level4.txt +++ b/Levels/Level4.txt @@ -1,6 +1,6 @@ -world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world -850.0,250.0|800.0,250.0|750.0,250.0|950.0,200.0|900.0,200.0|850.0,200.0|800.0,200.0|750.0,200.0|1000.0,200.0|1050.0,200.0|1100.0,200.0|1150.0,200.0|500.0,500.0|1050.0,500.0|1350.0,400.0|1350.0,450.0|1350.0,500.0|1350.0,350.0|1400.0,350.0|1400.0,300.0|1450.0,300.0|1500.0,300.0|1550.0,300.0|1600.0,300.0|1600.0,350.0|1550.0,350.0|1350.0,300.0|1600.0,400.0|1600.0,450.0|1600.0,500.0|1600.0,650.0|1250.0,650.0|1200.0,650.0|1150.0,650.0|400.0,650.0|350.0,650.0|300.0,650.0|300.0,700.0|350.0,700.0|400.0,700.0|1150.0,700.0|1200.0,700.0|1300.0,650.0|1350.0,650.0|1400.0,650.0|1450.0,650.0|1500.0,650.0|1550.0,650.0|1250.0,700.0|1300.0,700.0|1350.0,700.0|1400.0,700.0|1450.0,700.0|1500.0,700.0|1550.0,700.0|1600.0,700.0|750.0,450.0|1300.0,550.0|1250.0,550.0|1200.0,550.0|1150.0,550.0|1100.0,550.0|1050.0,550.0|1000.0,550.0|950.0,550.0|900.0,550.0|850.0,550.0|800.0,550.0|750.0,550.0|700.0,550.0|650.0,550.0|600.0,550.0|550.0,550.0|500.0,550.0|300.0,550.0|1350.0,550.0|1400.0,550.0|1450.0,550.0|1500.0,550.0|1550.0,550.0|1500.0,450.0|1600.0,600.0|1550.0,600.0|1500.0,600.0|1450.0,600.0|1400.0,600.0|1350.0,600.0|1300.0,600.0|1250.0,600.0|1200.0,600.0|1150.0,600.0|1050.0,600.0|1000.0,600.0|950.0,600.0|900.0,600.0|850.0,600.0|800.0,600.0|750.0,600.0|700.0,600.0|650.0,600.0|600.0,600.0|550.0,600.0|500.0,600.0|300.0,600.0|350.0,600.0|400.0,600.0|450.0,600.0|450.0,550.0|400.0,550.0|350.0,550.0|1600.0,550.0|1100.0,600.0|1100.0,650.0|1100.0,700.0|1050.0,700.0|1050.0,650.0|1000.0,650.0|1000.0,700.0|950.0,700.0|950.0,650.0|900.0,650.0|850.0,650.0|800.0,650.0|750.0,650.0|900.0,700.0|850.0,700.0|800.0,700.0|750.0,700.0|700.0,700.0|700.0,650.0|650.0,650.0|600.0,650.0|550.0,650.0|500.0,650.0|450.0,650.0|450.0,700.0|500.0,700.0|550.0,700.0|600.0,700.0|650.0,700.0|2000.0,500.0|2000.0,450.0|1900.0,500.0|1950.0,500.0|1950.0,450.0|1900.0,450.0 -SAND|SAND|SAND|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|PORTAL|INTERDIMENSIONALPOWDER|STONEBRICK|STONEBRICK|STONEBRICK|STONEBRICK|STONEBRICK|STONEBRICK|STONEBRICK|STONEBRICK|STONEBRICK|STONEBRICK|STONEBRICK|STONEBRICK|STONEBRICK|STONEBRICK|STONEBRICK|STONEBRICK|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|PLAYER|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|ENEMY|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|CORNERGRASS|CORNERGRASS|CORNERGRASS|CORNERGRASS|CORNERGRASS|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|CORNERDIRT|CORNERGRASS|DIRT|DIRT|GRASS|GRASS +none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world +1350.0,300.0|1400.0,300.0|1450.0,300.0|1500.0,300.0|1550.0,300.0|1600.0,300.0|1550.0,350.0|1600.0,350.0|1600.0,400.0|1600.0,450.0|1400.0,350.0|1350.0,350.0|1350.0,400.0|1350.0,450.0|750.0,400.0|1500.0,400.0|850.0,250.0|800.0,250.0|750.0,250.0|950.0,150.0|900.0,150.0|850.0,150.0|800.0,150.0|750.0,150.0|1000.0,150.0|1050.0,150.0|1100.0,150.0|1150.0,150.0|1600.0,600.0|1250.0,600.0|1200.0,600.0|1150.0,600.0|400.0,600.0|350.0,600.0|300.0,600.0|300.0,650.0|350.0,650.0|400.0,650.0|1150.0,650.0|1200.0,650.0|1300.0,600.0|1350.0,600.0|1400.0,600.0|1450.0,600.0|1500.0,600.0|1550.0,600.0|1250.0,650.0|1300.0,650.0|1350.0,650.0|1400.0,650.0|1450.0,650.0|1500.0,650.0|1550.0,650.0|1600.0,650.0|1300.0,500.0|1250.0,500.0|1200.0,500.0|1150.0,500.0|1100.0,500.0|1050.0,500.0|1000.0,500.0|950.0,500.0|900.0,500.0|850.0,500.0|800.0,500.0|750.0,500.0|700.0,500.0|650.0,500.0|600.0,500.0|550.0,500.0|500.0,500.0|300.0,500.0|1350.0,500.0|1400.0,500.0|1450.0,500.0|1500.0,500.0|1550.0,500.0|1600.0,550.0|1550.0,550.0|1500.0,550.0|1450.0,550.0|1400.0,550.0|1350.0,550.0|1300.0,550.0|1250.0,550.0|1200.0,550.0|1150.0,550.0|1050.0,550.0|1000.0,550.0|950.0,550.0|900.0,550.0|850.0,550.0|800.0,550.0|750.0,550.0|700.0,550.0|650.0,550.0|600.0,550.0|550.0,550.0|500.0,550.0|300.0,550.0|350.0,550.0|400.0,550.0|450.0,550.0|450.0,500.0|400.0,500.0|350.0,500.0|1600.0,500.0|1100.0,550.0|1100.0,600.0|1100.0,650.0|1050.0,650.0|1050.0,600.0|1000.0,600.0|1000.0,650.0|950.0,650.0|950.0,600.0|900.0,600.0|850.0,600.0|800.0,600.0|750.0,600.0|900.0,650.0|850.0,650.0|800.0,650.0|750.0,650.0|700.0,650.0|700.0,600.0|650.0,600.0|600.0,600.0|550.0,600.0|500.0,600.0|450.0,600.0|450.0,650.0|500.0,650.0|550.0,650.0|600.0,650.0|650.0,650.0|2000.0,500.0|2000.0,450.0|1900.0,500.0|1950.0,500.0|1950.0,450.0|1900.0,450.0|1200.0,150.0|1250.0,150.0|1300.0,150.0|1350.0,150.0|1400.0,150.0|1450.0,150.0|1500.0,150.0|1550.0,150.0|1600.0,150.0 +STONEBRICK|STONEBRICK|STONEBRICK|STONEBRICK|STONEBRICK|STONEBRICK|STONEBRICK|STONEBRICK|STONEBRICK|STONEBRICK|STONEBRICK|STONEBRICK|STONEBRICK|STONEBRICK|PLAYER|ENEMY|SAND|SAND|SAND|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|CORNERGRASS|CORNERGRASS|CORNERGRASS|CORNERGRASS|CORNERGRASS|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|CORNERDIRT|CORNERGRASS|DIRT|DIRT|GRASS|GRASS|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER diff --git a/Levels/Level5.txt b/Levels/Level5.txt new file mode 100644 index 0000000..0e324a7 --- /dev/null +++ b/Levels/Level5.txt @@ -0,0 +1,15 @@ +none|none|none|none|none|none|none|none|none|none|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world +1250.0,750.0|1200.0,750.0|1350.0,750.0|1350.0,700.0|1450.0,750.0|1450.0,700.0|1450.0,650.0|1450.0,600.0|1450.0,550.0|1250.0,700.0|50.0,800.0|100.0,800.0|150.0,800.0|200.0,800.0|250.0,800.0|300.0,800.0|350.0,800.0|400.0,800.0|450.0,800.0|500.0,800.0|550.0,800.0|600.0,800.0|650.0,800.0|700.0,800.0|750.0,800.0|800.0,800.0|850.0,800.0|900.0,800.0|950.0,800.0|1000.0,800.0|1050.0,800.0|1100.0,800.0|1150.0,800.0|1200.0,800.0|1250.0,800.0|1300.0,800.0|1350.0,800.0|1400.0,800.0|1450.0,800.0|1500.0,800.0|1550.0,800.0|1600.0,800.0|1650.0,800.0|1700.0,800.0|1750.0,800.0|1800.0,800.0|1850.0,800.0|1900.0,800.0|1950.0,800.0|2000.0,800.0|2050.0,800.0|2100.0,800.0|2150.0,850.0|2100.0,850.0|2050.0,850.0|2000.0,850.0|1950.0,850.0|1900.0,850.0|1850.0,850.0|1800.0,850.0|1750.0,850.0|1700.0,850.0|1650.0,850.0|1600.0,850.0|1550.0,850.0|1500.0,850.0|1450.0,850.0|1400.0,850.0|1350.0,850.0|1300.0,850.0|1250.0,850.0|1200.0,850.0|1150.0,850.0|1100.0,850.0|1050.0,850.0|1000.0,850.0|950.0,850.0|900.0,850.0|850.0,850.0|800.0,850.0|750.0,850.0|700.0,850.0|650.0,850.0|600.0,850.0|550.0,850.0|500.0,850.0|450.0,850.0|400.0,850.0|350.0,850.0|300.0,850.0|250.0,850.0|200.0,850.0|150.0,850.0|100.0,850.0|50.0,850.0|0.0,850.0|0.0,800.0|0.0,750.0|0.0,700.0|0.0,650.0|0.0,600.0|0.0,550.0|0.0,400.0|0.0,350.0|0.0,300.0|0.0,250.0|0.0,200.0|0.0,150.0|0.0,100.0|0.0,50.0|0.0,0.0|2200.0,850.0|2200.0,800.0|2200.0,750.0|2200.0,700.0|2200.0,650.0|2200.0,600.0|2150.0,400.0|2200.0,200.0|2200.0,150.0|2200.0,100.0|2200.0,50.0|2200.0,0.0|2150.0,0.0|2150.0,50.0|2150.0,100.0|2150.0,150.0|2150.0,200.0|2150.0,250.0|2150.0,350.0|2150.0,300.0|2200.0,250.0|2200.0,300.0|2200.0,350.0|2200.0,400.0|2200.0,550.0|2150.0,550.0|2150.0,600.0|2150.0,650.0|2150.0,700.0|2150.0,750.0|2150.0,800.0|300.0,600.0|0.0,450.0|2200.0,450.0|2150.0,450.0|2150.0,500.0|2200.0,500.0|0.0,500.0|1900.0,550.0|1900.0,600.0|1900.0,650.0|1900.0,700.0|1900.0,750.0|2050.0,700.0 +GOLDCOIN|BRONZECOIN|PEDESTAL|INTERDIMENSIONALPOWDER|PILLAR_|PILLAR_|PILLAR_|PILLAR_|PILLAR_|SILVERCOIN|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLAYER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|ENEMY + + + + + + + + + + + + diff --git a/Levels/Level6.txt b/Levels/Level6.txt new file mode 100644 index 0000000..e69de29 diff --git a/Levels/Level7.txt b/Levels/Level7.txt new file mode 100644 index 0000000..e69de29 diff --git a/PhysicsBody.py b/PhysicsBody.py index 2111e2a..2c1dafa 100644 --- a/PhysicsBody.py +++ b/PhysicsBody.py @@ -60,12 +60,12 @@ class PhysicsBody: # thing.position.x = pos.x + self.width # elif vel.x < 0: # thing.position.x = pos.x - thing.width - if vel.x > 0: + if vel.x >= 0: pos.x = thing.position.x - self.width - # vel.x = min(vel.x, 0) + vel.x = min(vel.x, 0) elif vel.x < 0: pos.x = thing.position.x + thing.width - # vel.x = max(vel.x, 0) + vel.x = max(vel.x, 0) collision_rect = self.get_collision_rect(pos) self.on_ground = False @@ -76,13 +76,13 @@ class PhysicsBody: if thing == self: continue if collision_rect.colliderect(thing.get_collision_rect()): - if vel.y > 0: + if vel.y >= 0: pos.y = thing.position.y - self.height vel.y = min(vel.y, 0) self.on_ground = True elif vel.y < 0: pos.y = thing.position.y + thing.height - # vel.y = max(vel.y, 0) + vel.y = max(vel.y, 0) # collision_rect = self.get_collision_rect(pos) return pos, vel diff --git a/Player.py b/Player.py index 292aed8..4822dab 100644 --- a/Player.py +++ b/Player.py @@ -241,6 +241,7 @@ class Player(Actor): get_display_rect(self.get_collision_rect()).topleft + pg.Vector2(0, 55) + self.display_offsets["weapon"]) surf.blit(self.display, get_display_rect(self.get_collision_rect()).topleft + self.display_offsets["player"]) + # print(self, self.position) # super().draw(surf) # print(self.position, self.velocity, get_display_rect(self.get_collision_rect()).topleft, Setup.camera_offset) # pg.draw.rect(surf, self.colour, get_display_rect(self.get_collision_rect()), border_radius=8) diff --git a/main.py b/main.py index a401dd6..f807de5 100644 --- a/main.py +++ b/main.py @@ -44,7 +44,7 @@ while is_running: case 4: scene = Game(4) case 5: - scene = Game(7) + scene = Game(5) old_level = level if level <= 1: