Adicionar goto_animado e lerp

This commit is contained in:
Guilherme Aleixo de Oliveira Martins 2025-03-07 15:06:54 -03:00
parent a8dc73a7c5
commit 1955cbbdd2
2 changed files with 40 additions and 0 deletions

13
main.py
View File

@ -7,6 +7,19 @@ from time import sleep as pause
from menus import main_menu
def lerp(inicial: tl.Vec2D, final: tl.Vec2D, t: float) -> tl.Vec2D:
return inicial + (final - inicial) * t
# Função de movimento com troca de sprite
def goto_animado(personagem: tl.Turtle, x: float, y: float, sprites: list[str], passos: int = 10):
posicao_inicial: tl.Vec2D = personagem.pos()
posicao_final: tl.Vec2D = tl.Vec2D(x, y)
for posicao in range(passos):
personagem.shape(sprites[posicao%len(sprites)]) #shape(sprites[posicao % 2]) # Alterna os sprites
personagem.goto(lerp(posicao_inicial, posicao_final, 1/(passos + 1) * posicao)) # Move a tartaruga
# Funcao para fazer as falas dos personagens
def falas(personagem: tl.Turtle, text: str, tempo: float = 3) -> None:
fala.goto(personagem.pos())

27
teste.py Normal file
View File

@ -0,0 +1,27 @@
import turtle
import math
# Configurando a tela
janela = turtle.Screen()
janela.bgcolor("white")
janela.title("Animação com Sprites")
# Registrando o shape
# Criando a tartaruga
animador = turtle.Turtle()
animador.penup()
turtle.register_shape("sprites\personagens\pinto_.gif")
turtle.register_shape("sprites\personagens\pinto_flamer_.gif")
animador.shape("sprites\personagens\pinto_.gif")
# Executa a animação
animador.speed(1)
goto_animado(animador, 300, 0, ["sprites\personagens\pinto_.gif", "sprites\personagens\pinto_flamer_.gif"], 20)
# Finaliza a janela
janela.mainloop()