Compare commits

..

2 Commits

2 changed files with 108 additions and 19 deletions

30
falas.txt Normal file
View File

@ -0,0 +1,30 @@
CENA pinto_acha_cobra
P Eita, um baú totalmente estranho no meio \ndessa masmorra muito perigosa.
P Baús são legais. Com certeza deve ter \nalgo legal dentro. Vou ver o que tem nele..
P Vixe, uma cobra!
C Tenha calma pequeno pinto. \nEu não sou uma cobra má.
P Por que eu deveria acreditar em você?
C Porque o meu nome é Python! Cobras \ncom esse nome são confiáveis...
P Tipo aquela linguagem \nde programação?!?!
C Isso mesmo!
P Eu não quero \nfazer programa!!!
C Volte aqui pintinho, eu \nnão vou fazer você programar!
CENA pinto_acha_cobra END
CENA pinto_foge_cobra
P Ainda bem que eu já passei por aqui!
C Que lugar estranho! \nNo baú era melhor.
C Não sei para onde esse pinto foi...
CENA pinto_foge_cobra END
CENA pinto_acha_arma
P Nossa, outro baú muito perigoso \nnessa masmorra. Vou abrir!
P Isso com certeza vai servir!
C Eu achei você!
CENA pinto_acha_arma END
CENA pinto_mata_cobra
P Daqui não tem como errar...
C Vou te alcançar!
P Parece que agora eu não \nsou o "pequeno pinto", né?
P Vou voltar a explorar essa masmorra maneira

97
main.py
View File

@ -1,12 +1,49 @@
""" """
module docs module docs
""" """
import re
import turtle as tl import turtle as tl
from time import sleep as pause from time import sleep as pause
from menus import main_menu from menus import main_menu
def ler_falas(file: str) -> dict[str: list[str]]:
pattern_inicio: str = r"CENA ([\w ]+)\s?"
pattern_fim: str = r"CENA ([\w ]+) END\s?"
falas = dict()
with open(file, "r", encoding="utf-8") as arquivo:
atual = ""
lendo = True
linha = arquivo.readline()
while linha != "":
inicio = re.search(pattern_inicio, linha)
fim = re.search(pattern_fim, linha)
if inicio:
atual = inicio.group()[5:-1]
linha = arquivo.readline()
lendo = True
continue
elif fim:
lendo = False
continue
if lendo == False:
linha = arquivo.readline()
continue
else:
if falas.get(atual) == None:
falas[atual] = []
linha = linha.replace("\\n", "\n")
falas[atual].append((linha[0], linha[2:-1]))
linha = arquivo.readline()
return falas
def lerp(inicial: tl.Vec2D, final: tl.Vec2D, t: float) -> tl.Vec2D: def lerp(inicial: tl.Vec2D, final: tl.Vec2D, t: float) -> tl.Vec2D:
return inicial + (final - inicial) * t return inicial + (final - inicial) * t
@ -35,6 +72,14 @@ def falas(personagem: tl.Turtle, text: str, tempo: float = 3) -> None:
fala.undo() fala.undo()
count += 1 count += 1
def falar_do_roteiro(roteiro: list[tuple[str, str]], index: int, tempo: int = 3):
if roteiro[index][0] == "P":
falas(pinto, roteiro[index][1], tempo)
elif roteiro[index][0] == "C":
falas(cobra, roteiro[index][1], tempo)
return index + 1
def pinto_acha_cobra() -> str: def pinto_acha_cobra() -> str:
""" """
Roteiro da cena 1: Roteiro da cena 1:
@ -53,6 +98,9 @@ def pinto_acha_cobra() -> str:
Ambos saem de cena. Ambos saem de cena.
""" """
cena = "pinto_acha_cobra"
index = 0
terminou = "não" terminou = "não"
tl.addshape("sprites/fundos/fundo_1_bau_fechado.gif") tl.addshape("sprites/fundos/fundo_1_bau_fechado.gif")
@ -65,8 +113,8 @@ def pinto_acha_cobra() -> str:
pinto.showturtle() pinto.showturtle()
pinto.goto(-132, -89) pinto.goto(-132, -89)
falas(pinto, "Eita, um baú totalmente estranho no meio\ndessa masmorra muito perigosa.") index = falar_do_roteiro(falas_dict[cena], index)
falas(pinto, "Baús são legais. Com certeza deve ter\nalgo legal dentro. Vou ver o que tem nele.") index = falar_do_roteiro(falas_dict[cena], index)
pinto.goto(28, -89) pinto.goto(28, -89)
pinto.goto(31, -16) pinto.goto(31, -16)
@ -84,18 +132,18 @@ def pinto_acha_cobra() -> str:
cobra.showturtle() cobra.showturtle()
pinto.goto(-160, -132) pinto.goto(-160, -132)
falas(pinto, "Vixe, uma cobra!") index = falar_do_roteiro(falas_dict[cena], index)
cobra.goto(-3, -62) cobra.goto(-3, -62)
falas(cobra, "Tenha calma pequeno pinto.\nEu não sou uma cobra má.") index = falar_do_roteiro(falas_dict[cena], index)
pinto.goto(-242, -164) pinto.goto(-242, -164)
falas(pinto, "Por que eu deveria acreditar em você?") index = falar_do_roteiro(falas_dict[cena], index)
cobra.goto(-55, -108) cobra.goto(-55, -108)
falas(cobra, "Porque o meu nome é Python! Cobras\ncom esse nome são confiáveis...", tempo = 4) index = falar_do_roteiro(falas_dict[cena], index, tempo = 4)
falas(pinto, "Tipo aquela linguagem\nde programação?!?!") index = falar_do_roteiro(falas_dict[cena], index)
falas(cobra, "Isso mesmo!", tempo = 1.5) falas(cobra, "Isso mesmo!", tempo = 1.5)
@ -111,14 +159,14 @@ def pinto_acha_cobra() -> str:
pinto.shape("sprites/personagens/_pinto.gif") pinto.shape("sprites/personagens/_pinto.gif")
falas(pinto, "Eu não quero\nfazer programa!!!") index = falar_do_roteiro(falas_dict[cena], index)
pause(0.5) pause(0.5)
pinto.goto(-281, -89) pinto.goto(-281, -89)
pinto.hideturtle() pinto.hideturtle()
falas(cobra, "Volte aqui pintinho, eu\nnão vou fazer você programar!") index = falar_do_roteiro(falas_dict[cena], index)
cobra.goto(-281, -89) cobra.goto(-281, -89)
cobra.hideturtle() cobra.hideturtle()
@ -143,6 +191,9 @@ def pinto_foge_cobra() -> str:
Ambos fora de cena. Ambos fora de cena.
""" """
cena = "pinto_foge_cobra"
index = 0
terminou = "não" terminou = "não"
tl.addshape("sprites/fundos/fundo_2.gif") tl.addshape("sprites/fundos/fundo_2.gif")
@ -155,7 +206,7 @@ def pinto_foge_cobra() -> str:
pinto.showturtle() pinto.showturtle()
pinto.goto(2, -28) pinto.goto(2, -28)
falas(pinto, "Ainda bem que eu já passei por aqui!") index = falar_do_roteiro(falas_dict[cena], index)
tl.addshape("sprites/personagens/pinto_.gif") tl.addshape("sprites/personagens/pinto_.gif")
pinto.shape("sprites/personagens/pinto_.gif") pinto.shape("sprites/personagens/pinto_.gif")
@ -170,7 +221,7 @@ def pinto_foge_cobra() -> str:
cobra.showturtle() cobra.showturtle()
cobra.goto(2, -28) cobra.goto(2, -28)
falas(cobra, "Que lugar estranho!\nNo baú era melhor.") index = falar_do_roteiro(falas_dict[cena], index)
tl.addshape("sprites/personagens/cobra_.gif") tl.addshape("sprites/personagens/cobra_.gif")
@ -182,7 +233,7 @@ def pinto_foge_cobra() -> str:
pause(0.15) pause(0.15)
count += 1 count += 1
falas(cobra, "Não sei para onde esse pinto foi...") index = falar_do_roteiro(falas_dict[cena], index)
cobra.shape("sprites/personagens/cobra_.gif") cobra.shape("sprites/personagens/cobra_.gif")
@ -209,6 +260,9 @@ def pinto_acha_arma() -> str:
A cobra segue o pinto. Todos saem de cena. A cobra segue o pinto. Todos saem de cena.
""" """
cena = "pinto_acha_arma"
index = 0
terminou = "não" terminou = "não"
tl.addshape("sprites/fundos/fundo_3_bau_fechado.gif") tl.addshape("sprites/fundos/fundo_3_bau_fechado.gif")
@ -222,7 +276,7 @@ def pinto_acha_arma() -> str:
pinto.showturtle() pinto.showturtle()
pinto.goto(0, -16) pinto.goto(0, -16)
falas(pinto, "Nossa, outro baú muito perigoso\nnessa masmorra. Vou abrir!") index = falar_do_roteiro(falas_dict[cena], index)
tl.addshape("sprites/fundos/fundo_3_bau_aberto.gif") tl.addshape("sprites/fundos/fundo_3_bau_aberto.gif")
@ -234,7 +288,7 @@ def pinto_acha_arma() -> str:
lanca_chamas.goto(0, 64) lanca_chamas.goto(0, 64)
lanca_chamas.showturtle() lanca_chamas.showturtle()
falas(pinto, "Isso com certeza vai servir!") index = falar_do_roteiro(falas_dict[cena], index)
lanca_chamas.hideturtle() lanca_chamas.hideturtle()
tl.addshape("sprites/personagens/_pinto_flamer.gif") tl.addshape("sprites/personagens/_pinto_flamer.gif")
@ -267,7 +321,7 @@ def pinto_acha_arma() -> str:
cobra.showturtle() cobra.showturtle()
cobra.goto(0, 0) cobra.goto(0, 0)
falas(cobra, "Eu achei você!", tempo = 1.8) index = falar_do_roteiro(falas_dict[cena], index)
cobra.goto(-352, 0) cobra.goto(-352, 0)
pause(2) pause(2)
@ -291,6 +345,9 @@ def pinto_mata_cobra() -> str:
Ele sai da cena. Ele sai da cena.
""" """
cena = "pinto_mata_cobra"
index = 0
terminou = "não" terminou = "não"
tl.addshape("sprites/fundos/fundo_4.gif") tl.addshape("sprites/fundos/fundo_4.gif")
@ -308,7 +365,7 @@ def pinto_mata_cobra() -> str:
tl.addshape("sprites/personagens/pinto_flamer_.gif") tl.addshape("sprites/personagens/pinto_flamer_.gif")
pinto.shape("sprites/personagens/pinto_flamer_.gif") pinto.shape("sprites/personagens/pinto_flamer_.gif")
falas(pinto, "Daqui não tem como errar...") index = falar_do_roteiro(falas_dict[cena], index)
tl.addshape("sprites/personagens/_cobra.gif") tl.addshape("sprites/personagens/_cobra.gif")
cobra.shape("sprites/personagens/_cobra.gif") cobra.shape("sprites/personagens/_cobra.gif")
@ -331,7 +388,7 @@ def pinto_mata_cobra() -> str:
fogo.goto(-50, -121) fogo.goto(-50, -121)
fogo.showturtle() fogo.showturtle()
falas(cobra, "AHHHHHHHHHHHHH!", tempo = 1) index = falar_do_roteiro(falas_dict[cena], index, tempo = 1)
pause(1.5) pause(1.5)
@ -341,7 +398,7 @@ def pinto_mata_cobra() -> str:
fogo.hideturtle() fogo.hideturtle()
falas(pinto, 'Parece que agora eu não\nsou o "pequeno pinto", né?', tempo = 4.5) 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.") index = falar_do_roteiro(falas_dict[cena], index)
tl.addshape("sprites/personagens/pinto_.gif") tl.addshape("sprites/personagens/pinto_.gif")
pinto.shape("sprites/personagens/pinto_.gif") pinto.shape("sprites/personagens/pinto_.gif")
@ -421,9 +478,11 @@ if __name__ == "__main__":
fala = tl.Turtle(visible=False) fala = tl.Turtle(visible=False)
fala.up() fala.up()
falas_dict = ler_falas("falas.txt")
index = 0
main() #chamando funcao principal main() #chamando funcao principal
tl.mainloop() tl.mainloop()