animafinal/main.py

417 lines
11 KiB
Python

"""
module docs
"""
import turtle as tl
from time import sleep as pause
from menus import main_menu
# Funcao para fazer as falas dos personagens
def falas(personagem: tl.Turtle, text: str, tempo: float = 3) -> None:
fala.goto(personagem.pos())
fala.left(45)
fala.fd(50)
fala.color("white")
fala.write(text,False,font=("arial",10,"normal"))
pause(tempo)
count = 0
while count <= 3:
fala.undo()
count += 1
def pinto_acha_cobra() -> str:
"""
Roteiro da cena 1:
Lugar misterioso com um baú. O pinto entra na cena. "Eita, um baú totalmente estranho no meio dessa masmorra super perigosa."
"Baús são legais. Com certeza deve ter algo legal dentro. Vou ver o que tem nele." - Diz o pinto.
O pinto vai até o baú e tenta abrir ele.
O baú abre e sai uma cobra de dentro.
"Vixe, uma cobra!" - Diz o pinto se afastando do baú.
"Tenha calma pequeno pinto. Eu não sou uma cobra má." - Diz a cobra saindo do baú.
"Por que eu deveria acreditar em você?" - Diz o pinto se afastando.
"Porque o meu nome é Python! Cobras com esse nome são confiáveis..." - Diz a cobra.
"Tipo aquela linguagem de programação?" - Pergunta o pinto.
"Isso mesmo!" - Responde a cobra.
"Eu não quero fazer programa!!!" - Diz o pinto enquanto sai de cena
"Volte aqui pintinho, eu não vou fazer você programar!" - Diz a acobra correndo atrás do pinto.
Ambos saem de cena.
"""
terminou = "não"
tl.addshape("sprites/fundos/fundo_1_bau_fechado.gif")
bgpic.shape("sprites/fundos/fundo_1_bau_fechado.gif")
tl.addshape("sprites/personagens/pinto_.gif")
pinto.shape("sprites/personagens/pinto_.gif")
pinto.goto(-281, -89)
pinto.showturtle()
pinto.goto(-132, -89)
falas(pinto, "Eita, um baú totalmente estranho no meio\ndessa masmorra muito perigosa.")
falas(pinto, "Baús são legais. Com certeza deve ter\nalgo legal dentro. Vou ver o que tem nele.")
pinto.goto(28, -89)
pinto.goto(31, -16)
pause(2)
tl.addshape("sprites/fundos/fundo_1_bau_aberto.gif")
bgpic.shape("sprites/fundos/fundo_1_bau_aberto.gif")
pause(1)
tl.addshape("sprites/personagens/_cobra.gif")
cobra.shape("sprites/personagens/_cobra.gif")
cobra.goto(31, 53)
cobra.showturtle()
pinto.goto(-160, -132)
falas(pinto, "Vixe, uma cobra!")
cobra.goto(-3, -62)
falas(cobra, "Tenha calma pequeno pinto.\nEu não sou uma cobra má.")
pinto.goto(-242, -164)
falas(pinto, "Por que eu deveria acreditar em você?")
cobra.goto(-55, -108)
falas(cobra, "Porque o meu nome é Python! Cobras\ncom esse nome são confiáveis...", tempo = 4)
falas(pinto, "Tipo aquela linguagem\nde programação?!?!")
falas(cobra, "Isso mesmo!", tempo = 1.5)
tl.addshape("sprites/personagens/_pinto.gif")
count = 0
while count <= 4:
pinto.shape("sprites/personagens/_pinto.gif")
pause(0.15)
pinto.shape("sprites/personagens/pinto_.gif")
pause(0.15)
count += 1
pinto.shape("sprites/personagens/_pinto.gif")
falas(pinto, "Eu não quero\nfazer programa!!!")
pause(0.5)
pinto.goto(-281, -89)
pinto.hideturtle()
falas(cobra, "Volte aqui pintinho, eu\nnão vou fazer você programar!")
cobra.goto(-281, -89)
cobra.hideturtle()
pause(2)
terminou = "sim"
if terminou == "sim":
return "Finalizou cena"
else:
return "Nao conseguiu finalizar a cena"
def pinto_foge_cobra() -> str:
"""
Roteiro da cena 2:
Um lugar da masmorra sombria. Esse lugar tem mais de uma saída. Tem paredes e obstáculos.
O pinto aparece correndo da cobra. "Ainda bem que eu já passei por aqui!" - Diz ele.
O pinto então passa pelos lugares certos e vai na direção de cima.
Enquanto isso a cobra chega no lugar e fica "perdida". "Que lugar estranho! No baú era melhor." - Diz ela.
Não sabendo para onde foi o pinto, ela diz - "Não sei para onde esse pinto foi..."
Então ela vai para baixo.
Ambos fora de cena.
"""
terminou = "não"
tl.addshape("sprites/fundos/fundo_2.gif")
bgpic.shape("sprites/fundos/fundo_2.gif")
tl.addshape("sprites/personagens/_pinto.gif")
pinto.shape("sprites/personagens/_pinto.gif")
pinto.goto(286, -26)
pinto.showturtle()
pinto.goto(2, -28)
falas(pinto, "Ainda bem que eu já passei por aqui!")
tl.addshape("sprites/personagens/pinto_.gif")
pinto.shape("sprites/personagens/pinto_.gif")
pinto.goto(-1, 298)
pinto.hideturtle()
tl.addshape("sprites/personagens/_cobra.gif")
cobra.shape("sprites/personagens/_cobra.gif")
cobra.goto(286, -26)
cobra.showturtle()
cobra.goto(2, -28)
falas(cobra, "Que lugar estranho!\nNo baú era melhor.")
tl.addshape("sprites/personagens/cobra_.gif")
count = 0
while count <= 4:
cobra.shape("sprites/personagens/cobra_.gif")
pause(0.15)
cobra.shape("sprites/personagens/_cobra.gif")
pause(0.15)
count += 1
falas(cobra, "Não sei para onde esse pinto foi...")
cobra.shape("sprites/personagens/cobra_.gif")
cobra.goto(1, -285)
cobra.hideturtle()
pause(2)
terminou = "sim"
if terminou == "sim":
return "Finalizou cena"
else:
return "Nao conseguiu finalizar a cena"
def pinto_acha_arma() -> str:
"""
Roteiro da cena 3:
Nessa cena o pinto chega em uma nova sala estranha com um baú.
"Nossa, outro baú muito perigoso nessa masmorra. Vou abrir!" - Diz o pinto indo em direção ao baú.
O pinto vai até o baú e após abrir ele, acha um lança-chamas.
"Isso com certeza vai servir!" - Diz ele segurando a arma e indo para uma outra sala.
O pinto na outra sala vai para a sala da esquerda.
A cobra sai debaixo e fala - "Eu achei você!" - Depois ela vai para a sala.
A cobra segue o pinto. Todos saem de cena.
"""
terminou = "não"
tl.addshape("sprites/fundos/fundo_3_bau_fechado.gif")
bgpic.shape("sprites/fundos/fundo_3_bau_fechado.gif")
tl.addshape("sprites/personagens/pinto_.gif")
pinto.shape("sprites/personagens/pinto_.gif")
pinto.hideturtle()
pinto.goto(0, -352)
pinto.showturtle()
pinto.goto(0, -16)
falas(pinto, "Nossa, outro baú muito perigoso\nnessa masmorra. Vou abrir!")
tl.addshape("sprites/fundos/fundo_3_bau_aberto.gif")
bgpic.shape("sprites/fundos/fundo_3_bau_aberto.gif")
tl.addshape("sprites/objetos/lancachamas.gif")
lanca_chamas.shape("sprites/objetos/lancachamas.gif")
lanca_chamas.goto(0, 64)
lanca_chamas.showturtle()
falas(pinto, "Isso com certeza vai servir!")
lanca_chamas.hideturtle()
tl.addshape("sprites/personagens/_pinto_flamer.gif")
pinto.shape("sprites/personagens/_pinto_flamer.gif")
pause(1)
pinto.goto(0, -352)
# OUTRA SALA ----------------------------------------------------------------------------------------
tl.addshape("sprites/fundos/fundo_2.gif")
bgpic.shape("sprites/fundos/fundo_2.gif")
pinto.hideturtle()
pinto.goto(0, 352)
pinto.showturtle()
pinto.goto(0, 0)
pinto.goto(-352, 0)
tl.addshape("sprites/personagens/_cobra.gif")
cobra.shape("sprites/personagens/_cobra.gif")
cobra.hideturtle()
cobra.goto(0, -352)
cobra.showturtle()
cobra.goto(0, 0)
falas(cobra, "Eu achei você!", tempo = 1.8)
cobra.goto(-352, 0)
pause(2)
terminou = "sim"
if terminou == "sim":
return "Finalizou cena"
else:
return "Nao conseguiu finalizar a cena"
def pinto_mata_cobra() -> str:
"""
Roteiro da cena 4:
O pinto com a sua arma chega na nova sala da masmorra e fica mirando para a porta esperando a cobra.
"Daqui não tem como errar..." - Diz o pinto.
A cobra chega na sala indo em direção ao pinto. "Vou te alcançar!" Diz ela.
Com a cobra se aproximando do pinto. O pinto aperta o gatilho e sai uma rajada de fogo na cobra; ela morre cremada.
"Parece que agora eu não sou o 'pequeno pinto', né?" Diz o pinto.
O pinto deixa o lança chamas no chão.
"Vou voltar a explorar essa masmorra legal." Diz o pinto.
Ele sai da cena.
"""
terminou = "não"
tl.addshape("sprites/fundos/fundo_4.gif")
bgpic.shape("sprites/fundos/fundo_4.gif")
tl.addshape("sprites/personagens/_pinto_flamer.gif")
pinto.shape("sprites/personagens/_pinto_flamer.gif")
pinto.hideturtle()
pinto.goto(290, -123)
pinto.showturtle()
pinto.goto(-134, -121)
tl.addshape("sprites/personagens/pinto_flamer_.gif")
pinto.shape("sprites/personagens/pinto_flamer_.gif")
falas(pinto, "Daqui não tem como errar...")
tl.addshape("sprites/personagens/_cobra.gif")
cobra.shape("sprites/personagens/_cobra.gif")
cobra.hideturtle()
cobra.goto(290, -123)
cobra.showturtle()
cobra.goto(150, -121)
falas(cobra, "Vou te pegar!", tempo = 1.5)
cobra.goto(5, -121)
falas(pinto, "Só que não!", tempo = 1.5)
tl.addshape("sprites/objetos/fogo.gif")
fogo.shape("sprites/objetos/fogo.gif")
fogo.goto(-50, -121)
fogo.showturtle()
falas(cobra, "AHHHHHHHHHHHHH!", tempo = 1)
pause(1.5)
tl.addshape("sprites/personagens/_cobra_burnt.gif")
cobra.shape("sprites/personagens/_cobra_burnt.gif")
fogo.hideturtle()
falas(pinto, 'Parece que agora eu não\nsou o "pequeno pinto", né?', tempo = 4.5)
falas(pinto, "Vou voltar a explorar essa masmorra maneira.")
tl.addshape("sprites/personagens/pinto_.gif")
pinto.shape("sprites/personagens/pinto_.gif")
tl.addshape("sprites/objetos/lancachamas.gif")
lanca_chamas.shape("sprites/objetos/lancachamas.gif")
lanca_chamas.goto(-112, -131)
lanca_chamas.showturtle()
pinto.goto(-297, -112)
pinto.hideturtle()
pause(2)
terminou = "sim"
if terminou == "sim":
return "Finalizou cena"
else:
return "Nao conseguiu finalizar a cena"
def main() -> None:
"""
Funcao main que chama as funcoes de cada cena da animacao
"""
scene_num = int(input(main_menu)) # input para saber qual cena ver
while scene_num != 6:
if scene_num == 1:
pinto_acha_cobra()
elif scene_num == 2:
pinto_foge_cobra()
elif scene_num == 3:
pinto_acha_arma()
elif scene_num == 4:
pinto_mata_cobra()
elif scene_num == 5: # adicionado para verificar cenas da animacao sem pausa
pinto_acha_cobra()
pinto_foge_cobra()
pinto_acha_arma()
pinto_mata_cobra()
else:
print("Cena nao disponivel")
scene_num = int(input(main_menu))
exit() # sair do programa caso escolha a opcao 6
if __name__ == "__main__":
# spawna a tela com suas config
tl.setup(600,600,None,None)
tl.bgcolor("black")
tl.title("A Lenda de Javi, O Grande pinto")
# Variaveis usadas para definir fundos, personagens, objetos e falas
bgpic = tl.Turtle()
bgpic.up()
pinto = tl.Turtle(visible=False)
pinto.up()
cobra = tl.Turtle(visible=False)
cobra.up()
fogo = tl.Turtle(visible=False)
fogo.up()
lanca_chamas = tl.Turtle(visible=False)
lanca_chamas.up()
fala = tl.Turtle(visible=False)
fala.up()
main() #chamando funcao principal
tl.mainloop()