Kennt sich jemand mit TygerJython aus?
ich muss für die Schule für morgen ein Projekt in tygerJython machen. Ich muss einen Hintergrund mit Haus, bergen und Sternenhimmel coden. Auf diesem Sternenhimmel soll dann eine Sternschnuppe mit Schweif lang fliegen und aus dem Haus soll Rauch kommen. Jetzt habe ich das Problem das die turtle die Animationen nicht alle auf einmal machen kann. Ich habe es schon mit threads versucht aber das hat nicht funktioniert. Bei der Sternschnuppe soll eine Tüte forne Zeichen eine soll den Schweif Zeichen und eine soll alles wieder weg machen. Hat jemand Ahnung von tygerJython und ein wenig Zeit einem verzweifelten Schüler zu helfen XD
1 Antwort
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]
Ich habe ja alles fertig ich kriege es nur nicht das die turtle alles gleichzeitig macht. Ich hätte auch gerne meinen Code hier rein gemacht aber das waren zu viele Zeichen