Rozdział 7 · Głębokie zanurzenie w Turtle

Turtle jako obiekt graficzny

Kształt, rozmiar i nachylenie kursora – ustawienia wyglądu niezależne od tego, gdzie i jak żółw faktycznie się porusza.

Do tej pory kształt żółwia był dla nas tylko „wskaźnikiem”

Formy wbudowane

galereya_form.py
import turtle

screen = turtle.Screen()
screen.setup(width=560, height=180)
artist = turtle.Turtle()
artist.penup()
artist.pencolor("#5B24F9")

shapes = ["arrow", "turtle", "circle", "square", "triangle", "classic"]
x = -220
for shape_name in shapes:
    artist.goto(x, 20)
    artist.shape(shape_name)
    artist.stamp()
    artist.goto(x, -25)
    artist.write(shape_name, align="center", font=("Arial", 10, "normal"))
    x += 85

screen.exitonclick()
Rezultat
Sześć różnych ikon kursora żółwi w rzędzie: arrow, turtle, circle, square, triangle, classic – każda podpisana własnym imieniem
Wszystkie wbudowane kształty kursorów żółwi są arrow classic
galereya_form_kod.py
shapes = ["arrow", "turtle", "circle", "square", "triangle", "classic"]
for shape_name in shapes:
    artist.shape(shape_name)
    artist.stamp()

shapesize() to rozmiar kursora, a nie rozmiar obrazu

razmer_formy.py
import turtle

screen = turtle.Screen()
screen.setup(width=420, height=220)
artist = turtle.Turtle()
artist.shape("turtle")
artist.pencolor("#5B24F9")
artist.penup()

sizes = [(0.5, -140), (1, -20), (2, 140)]
for factor, x in sizes:
    artist.goto(x, 0)
    artist.shapesize(factor, factor)
    artist.stamp()

screen.exitonclick()
Rezultat
Trzy sylwetki żółwi o różnych rozmiarach – małe, regularne i podwojone
shapesize() rozciąga widok kursora — 0.5×, 1× i 2× tej samej formy
razmer_formy_kod.py
artist.shape("turtle")
for factor in [0.5, 1, 2]:
    artist.shapesize(factor, factor)
    artist.stamp()
shapesize() nie zmienia współrzędnych
Powiększony żółw wygląda na większy, ale to tylko wygląd kursora — wszystkie współrzędne, obroty i odległości w kodzie pozostają dokładnie takie same jak wcześniej.

tilt() jest nachylenie widoku, a nie przebieg podróży

Tutaj ważne jest, aby rozróżnić dwa podobne, ale różne pojęcia:

KoncepcjaCo oznacza
heading (kurs)tam, gdzie żółw się PORUSZA, zmienia się left()/right()/setheading()
tilt (pochylenie)jak obrócony jest WID kursora na ekranie — zmienia to tylko tilt()/tiltangle()
naklon.py
import turtle

screen = turtle.Screen()
screen.setup(width=420, height=220)
artist = turtle.Turtle()
artist.shape("arrow")
artist.shapesize(3, 3)
artist.pencolor("#5B24F9")
artist.penup()

artist.goto(-100, 0)
artist.setheading(0)
artist.stamp()

artist.goto(100, 0)
artist.tilt(45)
artist.stamp()

screen.exitonclick()
Rezultat
Dwa wskaźniki strzałki o tym samym rozmiarze — lewy patrzy prosto, prawy jest odchylony pod kątem 45 stopni
tilt(45) obraca WIDOK kursora o 45°, nie zmieniając kierunku ruchu
naklon_kod.py
artist.shape("arrow")
artist.shapesize(3, 3)

artist.stamp()          # zwykły widok

artist.tilt(45)          # tylko obróć WIDOK, kurs ruchu się nie zmienił
artist.stamp()
Dlaczego możesz go potrzebować
Wyobraź sobie samolot lub samochód w grze: może LATAĆ ściśle w prawo (tor jest stały), ale lekko się kołysać wizualnie – to jest różnica między heading a tilt. Do podstawowych rysunków treningowych rzadko jest tilt() potrzebne, ale warto wiedzieć, że kurs ruchu i widok to różne rzeczy.
Praktyka: Żółw jako obiekt graficzny
Moduł turtle otwiera natywne okno Python – uruchamiane lokalnie w VS Code, PyCharm lub Jupyter
Praktyka kursuje lokalnie
Otwórz praktykę →