Adicionar goto_animado e lerp
This commit is contained in:
parent
a8dc73a7c5
commit
1955cbbdd2
13
main.py
13
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())
|
||||
|
|
|
@ -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()
|
Loading…
Reference in New Issue