from gturtle import *
import time
makeTurtle()
hideTurtle()
setScreenSize(800, 600)
# --- Hintergrund zeichnen ---
def drawBackground():
setBgColor("darkblue")
# Berge
setPenColor("darkgreen")
setFillColor("darkgreen")
startPath()
moveTo(-400, -100)
lineTo(-200, 100)
lineTo(0, -50)
lineTo(200, 150)
lineTo(400, -100)
lineTo(400, -300)
lineTo(-400, -300)
lineTo(-400, -100)
fillPath()
# Haus
setPenColor("brown")
setFillColor("brown")
fillRect(-50, -150, 100, 100)
setFillColor("red")
fillTriangle(-60, -50, 0, 0, 60, -50)
drawBackground()
# --- Sterne zeichnen ---
def drawStars():
from random import randint
for _ in range(50):
x = randint(-390, 390)
y = randint(0, 290)
setPenColor("white")
dotAt(x, y)
drawStars()
# --- Sternschnuppe mit Schweif ---
def drawShootingStar():
star = Turtle()
tail = Turtle()
remover = Turtle()
star.hideTurtle()
tail.hideTurtle()
remover.hideTurtle()
star.setPenColor("yellow")
tail.setPenColor("lightgray")
remover.setPenColor("darkblue") # Hintergrundfarbe
x = -300
y = 250
while x < 400:
# Stern
star.setPos(x, y)
star.dot(5)
# Schweif
tail.setPos(x - 20, y + 5)
tail.dot(3)
tail.setPos(x - 40, y + 10)
tail.dot(2)
# Warten
time.sleep(0.05)
# Entfernen (mit remover)
remover.setPos(x, y)
remover.dot(6)
remover.setPos(x - 20, y + 5)
remover.dot(4)
remover.setPos(x - 40, y + 10)
remover.dot(3)
x += 10
y -= 3
# --- Rauch ---
def smoke():
s = Turtle()
s.hideTurtle()
s.setPenColor("gray")
positions = [(-10, -50), (0, -40), (10, -30), (0, -20)]
radius = 10
while True:
for pos in positions:
s.setPos(pos[0], pos[1])
s.dot(radius)
time.sleep(0.1)
# Rauch verblasst
s.setPenColor("darkblue")
s.dot(radius)
s.setPenColor("gray")
# --- Hauptanimation ---
def main():
import threading
thread1 = threading.Thread(target=drawShootingStar)
thread2 = threading.Thread(target=smoke)
thread1.start()
thread2.start()
main()
"Löschen"
So in etwas könnte das aussehen :) mach deine Hausaufgaben oder was auch immer halt nicht im letzten Moment... :)
[ETWAS ARBEIT darfst du gerne selber machen]