Criando um Paint interativo com Python Turtle
O módulo Turtle no Python é uma ferramenta incrível para aprender programação de forma divertida e visual. Com ele, conseguimos criar desde desenhos simples até jogos interativos.
Neste tutorial, vamos aprender a criar um Paint interativo com Turtle, onde você poderá:
Desenhar com o mouse.
Alterar a cor da caneta com o teclado.
Movimentar o cursor com as setas do teclado.
Exemplo Prático: Paint Interativo
Aqui está o jogo que usaremos como referência:
Passo 1: Importando o módulo Turtle
O primeiro passo é importar o módulo turtle
, que já vem incluso no Python.
from turtle import *
Passo 2: Função para desenhar com o mouse
Aqui criamos a função draw()
. Sempre que arrastamos o mouse com o botão pressionado, a tartaruga (caneta) segue o cursor.
# Função de desenho com o mouse
def draw(x, y):
t.goto(x, y)
Explicação:
goto(x, y)
: leva a caneta até as coordenadas do cursor.
Passo 3: Função para mover a caneta com cliques
Se apenas clicarmos na tela, a caneta vai para aquele ponto e começa a desenhar a partir dali.
# Mover a caneta para novo ponto (clique na tela)
def move(x, y):
t.penup()
t.goto(x, y)
t.pendown()
Explicação:
penup()
: levanta a caneta (não desenha).pendown()
: abaixa a caneta para continuar desenhando.
Passo 4: Funções para mudar a cor da caneta
Vamos permitir que o usuário troque a cor pressionando as teclas R, G e B.
# Funções para mudar a cor com o teclado
def setRed():
t.color('red')
def setGreen():
t.color('green')
def setBlue():
t.color('blue')
Explicação:
t.color('red')
: altera a cor da caneta.
Passo 5: Funções para desenhar com as setas do teclado
Também podemos desenhar sem o mouse, apenas usando as setas do teclado.
# Funções para desenhar com as setas
def up():
t.goto(t.xcor(), t.ycor() + 5)
def down():
t.goto(t.xcor(), t.ycor() - 5)
def left():
t.goto(t.xcor() - 5, t.ycor())
def right():
t.goto(t.xcor() + 5, t.ycor())
Explicação:
xcor()
eycor()
: retornam as coordenadas atuais da caneta.Alteramos apenas X ou Y em ±5 unidades.
Passo 6: Criando a função principal
Agora juntamos tudo dentro da função main()
.
# Função principal
def main():
global t, scr
# Cria a caneta
t = Turtle()
t.shape("circle")
t.color("blue")
t.width(5)
t.pendown()
# Acessa a tela
scr = t.getscreen()
# Eventos de mouse
t.ondrag(draw)
scr.onscreenclick(move)
# Eventos de teclado
scr.listen()
scr.onkey(setRed, 'r')
scr.onkey(setGreen, 'g')
scr.onkey(setBlue, 'b')
scr.onkey(up, 'Up')
scr.onkey(down, 'Down')
scr.onkey(left, 'Left')
scr.onkey(right, 'Right')
# Mantém a janela aberta
scr.mainloop()
Explicação:
ondrag(draw)
: desenha enquanto arrasta o mouse.onscreenclick(move)
: move a caneta ao clicar.onkey(função, tecla)
: executa a função ao pressionar a tecla.mainloop()
: mantém a janela aberta.
Passo 7: Executando o programa
Por fim, chamamos a função main()
apenas se o arquivo for executado diretamente.
if __name__ == '__main__':
main()
Resultado Final
Ao rodar o código, você terá:
Uma caneta azul pronta para desenhar.
Arraste o mouse para desenhar livremente.
Clique na tela para mover a caneta.
Use R, G, B para trocar a cor.
Use as setas para desenhar sem o mouse.
Caso o Python ainda não esteja instalado em seu dispositivo, clique no botão abaixo para realizar a instalação.