Rozdział 7 · Głębokie zanurzenie w Turtle

Stempelki i inne techniki

stamp() jest nowy pomysł: odcisk kształtu żółwia bez ruchu i bez linii.

Znaczek to nie linia ani kursor

stamp() zostawia odcisk obecnego kształtu żółwia na Bez rysowania linii jest istotna różnica w stosunku do normalnego ruchu. Przydatne dla różnych identyczne obiekty na ekranie (gwiazdy nieba, wrogowie w grze, znaki na wykresie).

shtampy.py
import turtle

screen = turtle.Screen()
screen.setup(width=460, height=200)
artist = turtle.Turtle()
artist.shape("circle")
artist.color("#5B24F9")
artist.penup()

for _ in range(6):
    artist.stamp()
    artist.forward(60)

screen.exitonclick()
Rezultat
Sześć identycznych fioletowych kółek do pieczątek w rzędzie, bez linii łączącej je
stamp() sześć razy z rzędu — pozostawia odcisk formy, nie rysując linii między nimi
shtampy_kod.py
artist.shape("circle")
artist.color("#5B24F9")
artist.penup()

for _ in range(6):
    artist.stamp()
    artist.forward(60)
stamp() zwraca numer — zapamiętaj go
Każde wyzwanie stamp() zwraca liczbę całkowitą, która jest identyfikatorem danego znaczka. Bez niej nie możesz później usunąć konkretnego znaczka.

Usuń konkretne znaczki

clearstamp.py
import turtle

screen = turtle.Screen()
screen.setup(width=460, height=200)
artist = turtle.Turtle()
artist.shape("circle")
artist.color("#5B24F9")
artist.penup()

stamp_ids = []
for _ in range(6):
    stamp_ids.append(artist.stamp())
    artist.forward(60)

artist.clearstamp(stamp_ids[0])
artist.clearstamp(stamp_ids[2])
artist.clearstamp(stamp_ids[4])

screen.exitonclick()
Rezultat
Trzy pozostałe fioletowe kółka znaczków z oryginalnych sześciu, miejsca między usuniętymi znaczkami są puste
Te same sześć znaczków, ale trzy z nich zostają usunięte po clearstamp(id)
clearstamp_kod.py
stamp_ids = []
for _ in range(6):
    stamp_ids.append(artist.stamp())
    artist.forward(60)

artist.clearstamp(stamp_ids[0])
artist.clearstamp(stamp_ids[2])
artist.clearstamp(stamp_ids[4])
KomendaCo robi
clearstamp(id)usuwa JEDEN konkretny znaczek przez jego numer
clearstamps(n)usuwa pierwsze n znaczki (lub ostatnie n, jeśli n negatywne)
clearstamps()usuwa WSZYSTKIE znaczki żółwi

Żółw chowaj się i pokazuj

skryt.py
artist.hideturtle()   # ukryj wskaźnik żółwia (sama linia pozostanie)
artist.showturtle()   # pokaż z powrotem
Dlaczego ukrywać żółwia?
W gotowych rysunkach wskaźnik żółwia może być wizualnie niepokojący. hideturtle() na końcu programu sprawia, że końcowy efekt jest czystszy — używamy tego we wszystkich mini-projektach rozdziału.

Cofnij ostatnią akcję: undo()

undo.py
artist.forward(100)
artist.undo()   # cofa ostatni ruch jak Ctrl+Z
Praktyka: zawiera stemple i inne metody
Ten sam laptop co sekcja Kształty, Kółka, Kropki – to też obejmuje
Praktyka kursuje lokalnie
Otwórz praktykę →