Uživatelské nástroje

Nástroje pro tento web


turtle:mainloop

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
turtle:mainloop [2019/07/22 08:10] adamturtle:mainloop [2023/02/08 23:35] (aktuální) – upraveno mimo DokuWiki 127.0.0.1
Řádek 1: Řádek 1:
-==== Mainloop ==== +====== Smyčka událostí  ====== 
-Poté co želvičce [turtle:hvezdicka|v předchozím programu došly příkazy], program doběhl ukončil se.+Poté co želvičce [[turtle:hvezdicka|v předchozím programu došly příkazy]], program doběhl ukončil se.
 Pokud budeme chtít aby želvička reagovala na nějaké podněty (např. na stisk klávesy), musíme program zablokovat před koncem. K tomu slouží takzvaný //simulační cyklus//. Pro Turtle nám jej může poskytnout ''Screen'' prostřednictvím metody . Pokud budeme chtít aby želvička reagovala na nějaké podněty (např. na stisk klávesy), musíme program zablokovat před koncem. K tomu slouží takzvaný //simulační cyklus//. Pro Turtle nám jej může poskytnout ''Screen'' prostřednictvím metody .
  
 +===== screen.mainloop() =====
 <code python> <code python>
 from turtle import Screen,Turtle from turtle import Screen,Turtle
Řádek 27: Řádek 28:
 </code> </code>
  
-== Úkol ==+=== Úkol ===
   * Rozšiř předchozí kód pro obsluhu kláves dolů ('''Down'''), vlevo('''Left'''), vpravo('''Right'''). Použij funkce ''turtle.backward(1)'',''turtle.left(10)'',''turtle.right(10)''   * Rozšiř předchozí kód pro obsluhu kláves dolů ('''Down'''), vlevo('''Left'''), vpravo('''Right'''). Použij funkce ''turtle.backward(1)'',''turtle.left(10)'',''turtle.right(10)''
  
  
 +===== Vlastní smyčka =====
 +V předchozím programu nahradíme volání ''wn.mainloop()'' svým vlastím nekonečným cyklem ''while''
 +<code python>
 +from turtle import Screen,Turtle
 +
 +zelvicka = Turtle('triangle')
 +wn = Screen()
 +wn.setup(700, 700)
 +
 +def stisknutiKlavesyNahoru():
 +  zelvicka.forward(5)
 +  
 +wn.onkeypress(stisknutiKlavesyNahoru,'Up')
 +
 +while True:
 +  # "prázdný" pohyb želvičky
 +  zelvicka.left(0.1)  
 +  zelvicka.right(0.1)
 +  # další příkazy
 +  
 +# Sem už program nedoběhne
 +</code>
 +
 +=== Úkol ===
 +  * Rozšiř o obsluhu kláves doleva a doprava, stejně jako nahoře
 +  * Přidej do svojí simulační smyčky samovolný pohyb želvičky ''zelvicka.forward(1)''
 +
 +
 +----
 +==== Vlastní kód lépe ====
 +<code python>
 +import turtle
 +turtle.setup(1920, 1080)
 +wn=turtle.Screen()
 +wn.title ('game')
 +
 +player= turtle.Turtle()
 +
 +balls=[]
 +
 +def vytvor_mic():
 +     ball = turtle.Turtle()
 +     ball.speed(0)
 +     ball.shape('circle')
 +     ball.color("#e06641")
 +     ball.shapesize(1.8)
 +     ball.showturtle()
 +     ball.penup()
 +     ball.setx(random.randint(-945, 939))
 +     ball.sety(510)
 +     ball.setheading(270)
 +     balls.append(ball)
 +
 +wn.onkeypress(vytvor_mic,'s')
 +
 +wn.listen()
 +def pohni_svet():
 +    global wn
 +    for ball in balls:
 +        ball.forward(5)
 +    wn.ontimer(pohni_svet,50)
 +
 +pohni_svet()
 +wn.mainloop()
 +</code>
turtle/mainloop.1563783000.txt.gz · Poslední úprava: 2023/02/08 23:35 (upraveno mimo DokuWiki)