diff --git a/lumisade.py b/lumisade.py new file mode 100644 index 0000000000000000000000000000000000000000..6af9b849a409745fec1d4814cd0f3a3e9f0c37c3 --- /dev/null +++ b/lumisade.py @@ -0,0 +1,79 @@ +import pygame +import random + +# Alustetaan Pygame +pygame.init() + +# Asetetaan ikkunan koko +SCREEN_WIDTH = 800 +SCREEN_HEIGHT = 600 +screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT)) +pygame.display.set_caption("Lumihiutaleet") + +# Värit +WHITE = (255, 255, 255) +BLACK = (0, 0, 0) + +# Ladataan lumihiutaleiden kuvat +flake_images = [ + pygame.image.load("lumihiutale1.png"), + pygame.image.load("lumihiutale2.png"), + pygame.image.load("lumihiutale3.png") +] + +# Lumihiutale-luokka +class Snowflake(pygame.sprite.Sprite): + def __init__(self): + super().__init__() + # Valitaan satunnainen lumihiutale + self.image = random.choice(flake_images) + # Asetetaan lumihiutaleen koko satunnaisesti + scale_factor = random.uniform(0.1, 0.3) + self.image = pygame.transform.scale(self.image, (int(self.image.get_width() * scale_factor), int(self.image.get_height() * scale_factor))) + self.rect = self.image.get_rect() + # Asetetaan lumihiutale satunnaiseen kohtaan ylhäältä + self.rect.x = random.randint(0, SCREEN_WIDTH - self.rect.width) + self.rect.y = random.randint(-20, -100) # Putoaa satunnaisesta kohdasta ylhäältä + self.speed = random.uniform(1, 3) # Putoamisnopeus + + def update(self): + # Siirretään lumihiutaleita alaspäin + self.rect.y += self.speed + # Kun lumihiutale menee ruudun alareunaan, asetetaan se takaisin ylös + if self.rect.y > SCREEN_HEIGHT: + self.rect.y = random.randint(-100, -20) + self.rect.x = random.randint(0, SCREEN_WIDTH - self.rect.width) + +# Lumihiutaleet sprite-ryhmä +all_snowflakes = pygame.sprite.Group() + +# Luodaan vähintään 10 lumihiutaletta +for _ in range(10): + snowflake = Snowflake() + all_snowflakes.add(snowflake) + +# Pygamen pääsilmukka +running = True +while running: + # Tapahtumakäsittely + for event in pygame.event.get(): + if event.type == pygame.QUIT: + running = False + + # Päivitetään lumihiutaleet + all_snowflakes.update() + + # Täytetään tausta mustaksi + screen.fill(BLACK) + + # Piirretään lumihiutaleet + all_snowflakes.draw(screen) + + # Päivitetään näyttö + pygame.display.update() + + # Säilytetään 60 FPS + pygame.time.Clock().tick(60) + +# Lopetetaan Pygame +pygame.quit()