import pygame import sprites pygame.init() SCREEN_WIDTH = 1280 SCREEN_HEIGHT = 720 screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT)) clock = pygame.time.Clock() player = pygame.sprite.GroupSingle() player.add(sprites.Player()) streets = pygame.sprite.Group() street_1 = sprites.Streets(0, 100, SCREEN_WIDTH, 4) street_2 = sprites.Streets(0, 200, SCREEN_WIDTH, 4) streets.add(street_1) streets.add(street_2) lanterns = pygame.sprite.Group() lantern_list = [] detectors = pygame.sprite.Group() detectors_list = [] id = 1 for y_pos in range(50, 251, 200): x_pos = 100 while x_pos < SCREEN_WIDTH: lantern = sprites.Lanterns(x_pos, y_pos, 25, 25, id) lantern_list.append(lantern) detector = sprites.Detectors(x_pos, y_pos, 133, 300, id) detectors_list.append(detector) x_pos += 150 id += 1 for item in lantern_list: lanterns.add(item) for item in detectors_list: detectors.add(item) if __name__ == "__main__": run = True while run: for event in pygame.event.get(): if event.type == pygame.QUIT: run = False 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) for detector in collisions: for lantern in lanterns: if lantern.id == detector.id: lantern.light_up() if pygame.sprite.spritecollide(player.sprite, streets, False): player.sprite.set_back() pygame.display.update() clock.tick(60) pygame.quit()