turtle:mainloop
Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Následující verze | Předchozí verze | ||
| turtle:mainloop [2019/07/22 07:37] – vytvořeno 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: | ||
| + | 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 10: | Řádek 14: | ||
| # Funkce pro obsluhu udalosti stisku klavesy | # Funkce pro obsluhu udalosti stisku klavesy | ||
| # - zelvicka pojede dopredu | # - zelvicka pojede dopredu | ||
| - | def stisknutiKlavesyNahoru: | + | def stisknutiKlavesyNahoru(): |
| zelvicka.forward(5) | zelvicka.forward(5) | ||
| | | ||
| Řádek 17: | Řádek 21: | ||
| wn.listen() | wn.listen() | ||
| + | |||
| + | # Začíná simulační smyčka | ||
| + | wn.mainloop() | ||
| + | |||
| + | # Sem už program nedoběhne | ||
| </ | </ | ||
| - | == Úkoly | + | === Úkol === |
| - | * Rozšiř předchozí kód pro obsluhu kláves dolů (`Down`), vlevo(`Left`), vpravo(`Right`). Použij funkce | + | * 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.1563781046.txt.gz · Poslední úprava: 2023/02/08 23:35 (upraveno mimo DokuWiki)