2024-07-06 19:51:25 +02:00
|
|
|
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())
|
|
|
|
|
2024-07-06 22:34:48 +02:00
|
|
|
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)
|
2024-07-06 19:51:25 +02:00
|
|
|
|
2024-07-06 22:34:48 +02:00
|
|
|
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)
|
2024-07-06 19:51:25 +02:00
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
run = True
|
|
|
|
while run:
|
|
|
|
for event in pygame.event.get():
|
|
|
|
if event.type == pygame.QUIT:
|
|
|
|
run = False
|
|
|
|
|
|
|
|
|
2024-07-06 22:34:48 +02:00
|
|
|
screen.fill("Grey")
|
|
|
|
detectors.draw(screen)
|
|
|
|
streets.draw(screen)
|
|
|
|
lanterns.draw(screen)
|
2024-07-06 19:51:25 +02:00
|
|
|
player.draw(screen)
|
|
|
|
player.update()
|
|
|
|
|
2024-07-06 22:34:48 +02:00
|
|
|
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:
|
2024-07-07 14:23:58 +02:00
|
|
|
if lantern.id == detector.id - 1 and lantern.id is not 8 or lantern.id == detector.id + 1 and lantern.id is not 8:
|
|
|
|
lantern.light_up(176, 179, 0)
|
2024-07-06 22:34:48 +02:00
|
|
|
if lantern.id == detector.id:
|
2024-07-07 14:23:58 +02:00
|
|
|
lantern.light_up(255, 255, 0)
|
|
|
|
|
2024-07-06 19:51:25 +02:00
|
|
|
|
2024-07-06 22:34:48 +02:00
|
|
|
if pygame.sprite.spritecollide(player.sprite, streets, False):
|
|
|
|
player.sprite.set_back()
|
2024-07-06 19:51:25 +02:00
|
|
|
|
2024-07-07 14:23:58 +02:00
|
|
|
|
2024-07-06 19:51:25 +02:00
|
|
|
pygame.display.update()
|
|
|
|
clock.tick(60)
|
|
|
|
|
|
|
|
pygame.quit()
|