diff --git a/code/__pycache__/functions.cpython-310.pyc b/code/__pycache__/functions.cpython-310.pyc index 4c83884..e27e080 100644 Binary files a/code/__pycache__/functions.cpython-310.pyc and b/code/__pycache__/functions.cpython-310.pyc differ diff --git a/code/__pycache__/setup.cpython-310.pyc b/code/__pycache__/setup.cpython-310.pyc index e143f16..5c2f453 100644 Binary files a/code/__pycache__/setup.cpython-310.pyc and b/code/__pycache__/setup.cpython-310.pyc differ diff --git a/code/__pycache__/sprites.cpython-310.pyc b/code/__pycache__/sprites.cpython-310.pyc index 3e0327e..fe2bf02 100644 Binary files a/code/__pycache__/sprites.cpython-310.pyc and b/code/__pycache__/sprites.cpython-310.pyc differ diff --git a/code/functions.py b/code/functions.py index ca3a62e..82c00e1 100644 --- a/code/functions.py +++ b/code/functions.py @@ -60,26 +60,8 @@ def check_sensor(collisions, lanterns): if lantern.id == detector.id: lantern.light_up(255, 255, 0, 255) -def scene_1(screen, detectors, streets, lanterns, player): - screen.fill("Grey") - detectors.draw(screen) - streets.draw(screen) - lanterns.draw(screen) - player.draw(screen) - player.update() - for lantern in lanterns: - lantern.reset_light() - - # Check for collision and light up corresponding lantern - collisions = pygame.sprite.spritecollide(player.sprite, detectors, False) - check_sensor(collisions, lanterns) - - if pygame.sprite.spritecollide(player.sprite, streets, False): - player.sprite.set_back()# - - -def scene_2(screen, detectors, streets, lanterns, player): +def scene(screen, detectors, streets, lanterns, player): screen.fill("Pink") detectors.draw(screen) streets.draw(screen) @@ -97,38 +79,3 @@ def scene_2(screen, detectors, streets, lanterns, player): if pygame.sprite.spritecollide(player.sprite, streets, False): player.sprite.set_back() -def scene_3(screen, detectors, streets, lanterns, player): - screen.fill("Pink") - detectors.draw(screen) - streets.draw(screen) - lanterns.draw(screen) - player.draw(screen) - player.update() - - for lantern in lanterns: - lantern.reset_light() - - # Check for collision and light up corresponding lantern - collisions = pygame.sprite.spritecollide(player.sprite, detectors, False) - check_sensor(collisions, lanterns) - - if pygame.sprite.spritecollide(player.sprite, streets, False): - player.sprite.set_back() - -def scene_4(screen, detectors, streets, lanterns, player): - screen.fill("Pink") - detectors.draw(screen) - streets.draw(screen) - lanterns.draw(screen) - player.draw(screen) - player.update() - - for lantern in lanterns: - lantern.reset_light() - - # Check for collision and light up corresponding lantern - collisions = pygame.sprite.spritecollide(player.sprite, detectors, False) - check_sensor(collisions, lanterns) - - if pygame.sprite.spritecollide(player.sprite, streets, False): - player.sprite.set_back() \ No newline at end of file diff --git a/code/setup.py b/code/setup.py index 9193506..1ca4201 100644 --- a/code/setup.py +++ b/code/setup.py @@ -495,6 +495,122 @@ def setup_lanterns_detectors_scene_7(): y_pos += 100 id += 1 + return lantern_list, detectors_list + + +def setup_streets_scene_8(): + street_1 = sprites.Streets(1700, 0, 4, 1000) # Street 1/2 Right Line + street_2 = sprites.Streets(1600, 0, 4, 454) # Street 1 Left Line + street_3 = sprites.Streets(1600, 550, 4, 450) # Street 2 Left Line + street_4 = sprites.Streets(0, 450, 1600, 4) # Street 3 Top Line + street_5 = sprites.Streets(0, 550, 1600, 4) # Street 3 Bottom Line + + streets_list = [street_1, street_2, street_3, street_4, street_5] + + return streets_list + + +def setup_lanterns_detectors_scene_8(): + + lantern_list = [] + detectors_list = [] + + # intersection 1 + cross_lantern_1 = sprites.Lanterns(1575, 425, 25, 25, id=1, street="street_3", crossing_id=1) + cross_lantern_2 = sprites.Lanterns(1575, 575, 25, 25, id=1, street="street_3", crossing_id=1) + cross_lantern_3 = sprites.Lanterns(1725, 425, 25, 25, id=1, street="street_1", crossing_id=1) + cross_lantern_4 = sprites.Lanterns(1725, 575, 25, 25, id=1, street="street_2", crossing_id=1) + cross_detector_1 = sprites.Detectors(1650, 500, 260, 260, crossing_id=1) + + lantern_list.extend([cross_lantern_1, cross_lantern_2, cross_lantern_3, cross_lantern_4]) + detectors_list.append(cross_detector_1) + + # Street 1 + for x_pos in range(1575, 1726, 150): + y_pos = 325 + id = 2 + while y_pos >= 25: + lantern = sprites.Lanterns(x_pos, y_pos, 25, 25, id, street="street_1") + lantern_list.append(lantern) + detector = sprites.Detectors(x_pos, y_pos, 200, 75, id, street="street_1") + detectors_list.append(detector) + print(y_pos) + y_pos -= 100 + id += 1 + # Street 2 + for x_pos in range(1575, 1726, 150): + y_pos = 675 + id = 2 + while y_pos <= 975: + lantern = sprites.Lanterns(x_pos, y_pos, 25, 25, id, street="street_2") + lantern_list.append(lantern) + detector = sprites.Detectors(x_pos, y_pos, 200, 75, id, street="street_2") + detectors_list.append(detector) + print(y_pos) + y_pos += 100 + id += 1 + + # Street 3 + for y_pos in range(425, 576, 150): + x_pos = 1475 + id = 2 + while x_pos >= 75: + lantern = sprites.Lanterns(x_pos, y_pos, 25, 25, id, street="street_3") + lantern_list.append(lantern) + detector = sprites.Detectors(x_pos, y_pos, 75, 90, id, street="street_3") + detectors_list.append(detector) + x_pos -= 100 + id += 1 + + return lantern_list, detectors_list + +def setup_streets_scene_9(): + street_1 = sprites.Streets(0, 800, 1604, 4) # Street 2 Top Line + street_2 = sprites.Streets(0, 900, 1704, 4) # Street 2 Bottom Linee + street_3 = sprites.Streets(1700, 0, 4, 900) # Street 1 Right Line + street_4 = sprites.Streets(1600, 0, 4, 800) # Street 1 Left Line + + streets_list = [street_1, street_2, street_3, street_4] + + return streets_list + +def setup_lanterns_detectors_scene_9(): + + lantern_list = [] + detectors_list = [] + + cross_lantern_1 = sprites.Lanterns(1575, 775, 25, 25, id=1, street="street_1", crossing_id=1) + cross_lantern_2 = sprites.Lanterns(1725, 775, 25, 25, id=1, street="street_1", crossing_id=1) + cross_lantern_3 = sprites.Lanterns(1575, 925, 25, 25, id=1, street="street_2", crossing_id=1) + cross_lantern_4 = sprites.Lanterns(1725, 925, 25, 25, id=1, street="street_2", crossing_id=1) + cross_detector_1 = sprites.Detectors(1650, 850, 260, 260, crossing_id=1) + + lantern_list.extend([cross_lantern_1, cross_lantern_2, cross_lantern_3, cross_lantern_4]) + detectors_list.append(cross_detector_1) + + # Street 1 + for y_pos in range(775, 926, 150): + x_pos = 1475 + id = 2 + while x_pos >= 75: + lantern = sprites.Lanterns(x_pos, y_pos, 25, 25, id, street="street_1") + lantern_list.append(lantern) + detector = sprites.Detectors(x_pos, y_pos, 75, 90, id, street="street_1") + detectors_list.append(detector) + x_pos -= 100 + id += 1 + + # Street 2 + for x_pos in range(1575, 1726, 150): + y_pos = 675 + id = 2 + while y_pos >= 75: + lantern = sprites.Lanterns(x_pos, y_pos, 25, 25, id, street="street_2") + lantern_list.append(lantern) + detector = sprites.Detectors(x_pos, y_pos, 200, 75, id, street="street_2") + detectors_list.append(detector) + y_pos -= 100 + id += 1 return lantern_list, detectors_list \ No newline at end of file diff --git a/code/simulation.py b/code/simulation.py index d4e52e7..4ca495e 100644 --- a/code/simulation.py +++ b/code/simulation.py @@ -35,6 +35,12 @@ streets_list_scene_6 = setup.setup_streets_scene_6() streets_scene_7 = pygame.sprite.Group() streets_list_scene_7 = setup.setup_streets_scene_7() +streets_scene_8 = pygame.sprite.Group() +streets_list_scene_8 = setup.setup_streets_scene_8() + +streets_scene_9 = pygame.sprite.Group() +streets_list_scene_9 = setup.setup_streets_scene_9() + lanterns_scene_1 = pygame.sprite.Group() detectors_scene_1 = pygame.sprite.Group() @@ -64,6 +70,14 @@ lanterns_scene_7 = pygame.sprite.Group() detectors_scene_7 = pygame.sprite.Group() lantern_list_scene_7, detectors_list_scene_7 = setup.setup_lanterns_detectors_scene_7() +lanterns_scene_8 = pygame.sprite.Group() +detectors_scene_8 = pygame.sprite.Group() +lantern_list_scene_8, detectors_list_scene_8 = setup.setup_lanterns_detectors_scene_8() + +lanterns_scene_9 = pygame.sprite.Group() +detectors_scene_9 = pygame.sprite.Group() +lantern_list_scene_9, detectors_list_scene_9 = setup.setup_lanterns_detectors_scene_9() + current_scene = "scene_1" @@ -116,6 +130,20 @@ for item in lantern_list_scene_7: for item in detectors_list_scene_7: detectors_scene_7.add(item) +for item in streets_list_scene_8: + streets_scene_8.add(item) +for item in lantern_list_scene_8: + lanterns_scene_8.add(item) +for item in detectors_list_scene_8: + detectors_scene_8.add(item) + +for item in streets_list_scene_9: + streets_scene_9.add(item) +for item in lantern_list_scene_9: + lanterns_scene_9.add(item) +for item in detectors_list_scene_9: + detectors_scene_9.add(item) + if __name__ == "__main__": run = True @@ -125,19 +153,23 @@ if __name__ == "__main__": run = False if current_scene == "scene_1": - functions.scene_1(screen, detectors_scene_1, streets_scene_1, lanterns_scene_1, player) + functions.scene(screen, detectors_scene_1, streets_scene_1, lanterns_scene_1, player) if current_scene == "scene_2": - functions.scene_2(screen, detectors_scene_2, streets_scene_2, lanterns_scene_2, player) + functions.scene(screen, detectors_scene_2, streets_scene_2, lanterns_scene_2, player) if current_scene == "scene_3": - functions.scene_2(screen, detectors_scene_3, streets_scene_3, lanterns_scene_3, player) + functions.scene(screen, detectors_scene_3, streets_scene_3, lanterns_scene_3, player) if current_scene == "scene_4": - functions.scene_2(screen, detectors_scene_4, streets_scene_4, lanterns_scene_4, player) + functions.scene(screen, detectors_scene_4, streets_scene_4, lanterns_scene_4, player) if current_scene == "scene_5": - functions.scene_2(screen, detectors_scene_5, streets_scene_5, lanterns_scene_5, player) + functions.scene(screen, detectors_scene_5, streets_scene_5, lanterns_scene_5, player) if current_scene == "scene_6": - functions.scene_2(screen, detectors_scene_6, streets_scene_6, lanterns_scene_6, player) + functions.scene(screen, detectors_scene_6, streets_scene_6, lanterns_scene_6, player) if current_scene == "scene_7": - functions.scene_2(screen, detectors_scene_7, streets_scene_7, lanterns_scene_7, player) + functions.scene(screen, detectors_scene_7, streets_scene_7, lanterns_scene_7, player) + if current_scene == "scene_8": + functions.scene(screen, detectors_scene_8, streets_scene_8, lanterns_scene_8, player) + if current_scene == "scene_9": + functions.scene(screen, detectors_scene_9, streets_scene_9, lanterns_scene_9, player) current_scene = player.sprite.left_scene(current_scene) diff --git a/code/sprites.py b/code/sprites.py index 422266b..739fccd 100644 --- a/code/sprites.py +++ b/code/sprites.py @@ -41,9 +41,11 @@ class Player(pygame.sprite.Sprite): def left_scene(self, current_scene): if current_scene == "scene_1" and self.rect.y >= 1080: - self.rect.x = 900 self.rect.y = -80 return "scene_2" + if current_scene == "scene_1" and self.rect.x >= 1880: + self.rect.x = -80 + return "scene_8" if current_scene == "scene_1" and self.rect.x <= -80: self.rect.x = 1880 return "scene_3" @@ -57,6 +59,9 @@ class Player(pygame.sprite.Sprite): if current_scene == "scene_2" and self.rect.x <= -80: self.rect.x = 1800 return "scene_4" + if current_scene == "scene_2" and self.rect.x >= 1880: + self.rect.x = -80 + return "scene_9" if current_scene == "scene_3" and self.rect.x >= 1880: self.rect.x = -80 return "scene_1" @@ -89,7 +94,26 @@ class Player(pygame.sprite.Sprite): return "scene_7" if current_scene == "scene_7" and self.rect.x <= -80: self.rect.x = 1880 - return "scene_6" + return "scene_6" + if current_scene == "scene_7" and self.rect.y >= 1080: + self.rect.y = -80 + return "scene_8" + if current_scene == "scene_8" and self.rect.y <= -80: + self.rect.y = 1080 + return "scene_7" + if current_scene == "scene_8" and self.rect.x <= -80: + self.rect.x = 1880 + return "scene_1" + if current_scene == "scene_8" and self.rect.y >= 1080: + self.rect.y = -80 + return "scene_9" + if current_scene == "scene_9" and self.rect.x <= -80: + self.rect.x = 1880 + self.rect.y = 795 + return "scene_2" + if current_scene == "scene_9" and self.rect.y <= -80: + self.rect.y = 1080 + return "scene_8" return current_scene def update(self):