
Com o método getshapes ficamos a saber as formas conhecidas para a tartaruga, e como método shape podemos definir o valor pretendido.
Mas também podemos criar novas formas e adicioná-las sem grande dificuldade. Para isso basta criar uma forma como se mostra no código abaixo.
01.
from
cTurtle
import
*
02.
03.
def
add_ponteiro(tarta):
04.
tarta.setheading(
90
)
05.
tarta.polystart()
06.
tarta.fd(
100
)
07.
tarta.lt(
90
)
08.
tarta.fd(
20
)
09.
tarta.rt(
120
)
10.
tarta.fd(
40
)
11.
tarta.rt(
120
)
12.
tarta.fd(
40
)
13.
tarta.rt(
120
)
14.
tarta.fd(
20
)
15.
tarta.polyend()
16.
ponteiro
=
tarta.getpoly()
17.
tarta.addshape(
'meu_ponteiro'
,ponteiro)
18.
19.
if
__name__
=
=
'__main__'
:
20.
tarta
=
Turtle()
21.
add_ponteiro(tarta)
22.
tarta.clear()
23.
tarta.setheading(
90
)
24.
tarta.shape(
'meu_ponteiro'
)
25.
tarta.fillcolor(
'blue'
)
26.
tarta.exitOnClick()
O método consiste na criação de um objecto definido entre polystart e polyend. Depois vamos buscá-lo (getpoly) e associá-lo a um nome (ponteiro). Finalmente adicionamos a nova forma (addshape), dando-lhe um nome (‘meu_ponteiro’). Depois é só usar:

Mas será possível manipular esta forma, como se de um objecto normal se tratasse? A resposta é: sim! Vejamos um exemplo. Aqui vamos usar o método onTimer. Tem dois argumentos: o primeiro, é o nome de uma função, o segundo, é um temporizador em milisegundos. Significa que a função vai ser activada de tantos em tantos milisegundos. No nosso exemplo a função a única coisa que faz é mudar a orientação da tartaruga. Eis o código:
01.
from
cTurtle
import
*
02.
03.
def
add_ponteiro(tarta):
04.
tarta.setheading(
90
)
05.
tarta.polystart()
06.
tarta.fd(
100
)
07.
tarta.lt(
90
)
08.
tarta.fd(
20
)
09.
tarta.rt(
120
)
10.
tarta.fd(
40
)
11.
tarta.rt(
120
)
12.
tarta.fd(
40
)
13.
tarta.rt(
120
)
14.
tarta.fd(
20
)
15.
tarta.polyend()
16.
ponteiro
=
tarta.getpoly()
17.
tarta.addshape(
'ponteiro'
,ponteiro)
18.
19.
def
segundos():
20.
tarta.setheading((tarta.heading()
-
6
)
%
360
)
21.
tarta.onTimer(segundos,
500
)
22.
23.
if
__name__
=
=
'__main__'
:
24.
tarta
=
Turtle()
25.
add_ponteiro(tarta)
26.
tarta.clear()
27.
tarta.setheading(
90
)
28.
tarta.shape(
'ponteiro'
)
29.
tarta.fillcolor(
'blue'
)
30.
segundos()
31.
tarta.exitOnClick()
O resultado pode ser visto neste vídeo caseiro, com um final à Charlot! E porque não fazer um relógio digital com base nesta ideia??
Sem comentários:
Enviar um comentário