Você está aqui: Python ::: Tkinter GUI Toolkit ::: Animação, Animações, Técnicas de Animação |
Como movimentar uma imagem no Canvas do Tkinter usando as teclas de direçãoQuantidade de visualizações: 803 vezes |
|
Nesta dica mostrarei uma técnica de animação muito valiosa para quem está começando a desenvolver jogos em Tkinter. Nossa idéia é carregar uma imagem na superfície de um elemento Canvas e movê-la na tela usando as teclas de direção (para cima, para baixo, para a direita e para a esquerda). Este código é muito interessante pois mostra não somente como carregar a imagem no Canvas mas também a usar a função move() para movimentar um determinado elemento, identificado por seu atributo único. Outro detalhe importante é uso da função bind() para anexar à janela da aplicação os eventos que queremos tratar. Veja o código Python completo para o exemplo: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
# vamos importar o módulo Tkinter
from tkinter import *
from tkinter.ttk import *
# vamos importar os objetos Image e ImageTk do Pillow
from PIL import Image, ImageTk
# variáveis globais
canvas = None
imagem = None
incremento_x = 20
incremento_y = 20
# método principal
def main():
# referencia as variáveis globais
global canvas, imagem, pos_x, pos_y
# vamos criar o frame para representar a janela da aplicação Tkinter
janela = Tk()
# agora definimos o tamanho da janela
janela.geometry("800x650")
# criamos o objeto Canvas com o fundo branco
canvas = Canvas(janela, width=750, height=600, bg="white")
canvas.pack(pady=20)
# vamos carregar a imagem que será exibida no Canvas
imagem_moto = ImageTk.PhotoImage(Image.open('moto.png'))
# colocamos a imagem no Canvas e geramos o id único "imagem" para ela
imagem = canvas.create_image(50, 50, anchor=NW, image=imagem_moto)
# agora fazemos o binding dos eventos
janela.bind("<Left>", esquerda)
janela.bind("<Right>", direita)
janela.bind("<Up>", cima)
janela.bind("<Down>", baixo)
# e entramos no loop da aplicação
janela.mainloop()
# função para mover a imagem para a esquerda
def esquerda(evento):
# referencia as variáveis globais
global canvas, imagem, incremento_x
canvas.move(imagem, -incremento_x, 0)
# função quer move a imagem para a direita
def direita(evento):
# referencia as variáveis globais
global canvas, imagem, incremento_x
canvas.move(imagem, incremento_x, 0)
# função que move a imagem para cima
def cima(evento):
# referencia as variáveis globais
global canvas, imagem, incremento_y
canvas.move(imagem, 0, -incremento_y)
# função que move a imagem para baixo
def baixo(evento):
# referencia as variáveis globais
global canvas, imagem, incremento_y
canvas.move(imagem, 0, incremento_y)
if __name__== "__main__":
main()
|
|
|
Desafios, Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
Dicas e truques de outras linguagens |
|
Delphi - Como retornar a quantidade de itens em uma TListBox do Delphi usando a propriedade Items.Count |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





