diff --git a/main.py b/main.py index 013e5e4..2d11b06 100644 --- a/main.py +++ b/main.py @@ -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()) diff --git a/teste.py b/teste.py new file mode 100644 index 0000000..a1b6332 --- /dev/null +++ b/teste.py @@ -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()