turtle:mainloop
Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revizePředchozí verzeNásledující verze | Předchozí verze | ||
turtle:mainloop [2019/07/22 08:08] – adam | turtle: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: | + | Poté co želvičce |
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ý // | 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ý // | ||
+ | ===== screen.mainloop() ===== | ||
<code python> | <code python> | ||
from turtle import Screen, | from turtle import Screen, | ||
Řádek 17: | Řádek 18: | ||
| | ||
# Napojeni na stisk klavesy | # Napojeni na stisk klavesy | ||
- | wn.onkeypress(stisknutiKlavesyNahoru, | + | wn.onkeypress(stisknutiKlavesyNahoru, |
wn.listen() | wn.listen() | ||
Řádek 27: | Řádek 28: | ||
</ | </ | ||
- | == Úkol == | + | === Úkol === |
- | * Rozšiř předchozí kód pro obsluhu kláves dolů ('' | + | * Rozšiř předchozí kód pro obsluhu kláves dolů ('' |
+ | ===== Vlastní smyčka ===== | ||
+ | V předchozím programu nahradíme volání '' | ||
+ | <code python> | ||
+ | from turtle import Screen, | ||
+ | |||
+ | zelvicka = Turtle(' | ||
+ | wn = Screen() | ||
+ | wn.setup(700, | ||
+ | |||
+ | def stisknutiKlavesyNahoru(): | ||
+ | zelvicka.forward(5) | ||
+ | | ||
+ | wn.onkeypress(stisknutiKlavesyNahoru,' | ||
+ | |||
+ | while True: | ||
+ | # " | ||
+ | zelvicka.left(0.1) | ||
+ | zelvicka.right(0.1) | ||
+ | # další příkazy | ||
+ | | ||
+ | # Sem už program nedoběhne | ||
+ | </ | ||
+ | |||
+ | === Ú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 '' | ||
+ | |||
+ | |||
+ | ---- | ||
+ | ==== Vlastní kód lépe ==== | ||
+ | <code python> | ||
+ | import turtle | ||
+ | turtle.setup(1920, | ||
+ | wn=turtle.Screen() | ||
+ | wn.title (' | ||
+ | |||
+ | player= turtle.Turtle() | ||
+ | |||
+ | balls=[] | ||
+ | |||
+ | def vytvor_mic(): | ||
+ | ball = turtle.Turtle() | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | wn.onkeypress(vytvor_mic,' | ||
+ | |||
+ | wn.listen() | ||
+ | def pohni_svet(): | ||
+ | global wn | ||
+ | for ball in balls: | ||
+ | ball.forward(5) | ||
+ | wn.ontimer(pohni_svet, | ||
+ | |||
+ | pohni_svet() | ||
+ | wn.mainloop() | ||
+ | </ |
turtle/mainloop.1563782925.txt.gz · Poslední úprava: 2023/02/08 23:35 (upraveno mimo DokuWiki)