commit 26b9e8917553e9eb8671c9f43419a42e896101c7 Author: Jurandy Soares Date: Thu Feb 27 08:41:51 2025 -0300 Primeira importação diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f19c81a --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +__pycache__/ + +site/ + +.env +.venv +env +venv \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..45cbd6f --- /dev/null +++ b/README.md @@ -0,0 +1,44 @@ +# Animaivos + +Bem-vindo ao repositório do projeto Animaivos! + +## Descrição + +O projeto Animaivos é uma aplicação desenvolvida para fazer animações [...]. + +## Funcionalidades + +- asdfasdf + +## Tecnologias Utilizadas + +- Linguagem de Programação: Python +- Biblioteca: turtle + +## Como Executar o Projeto + +1. Clone o repositório: + ```bash + git clone https://gitea.mange.ifrn.edu.br/MATRICULA/animaivos.git + ``` +2. Navegue até o diretório do projeto: + ```bash + cd animaivos + ``` + +3. Execute o arquivo principal da animação: + ```bash + python main.py + ``` + +## Contribuição + +Contribuições são bem-vindas! Sinta-se à vontade para abrir issues e enviar pull requests. + +## Licença + +Este projeto está licenciado sob a licença MIT. Veja o arquivo [LICENSE](LICENSE) para mais detalhes. + +## Contato + +Para mais informações, entre em contato com [NOME.SOBRENOME@escolar.ifrn.edu.br](NOME.SOBRENOME@escolar.ifrn.edu.br). diff --git a/main.py b/main.py new file mode 100644 index 0000000..60f72be --- /dev/null +++ b/main.py @@ -0,0 +1,73 @@ +""" +Módulo principal +""" + +import turtle + +from pacote.nucleo import carrega_img_fundo, carrega_personagens, fala + +# Do módulo menus, do pacote ______, import o menu_principal +from pacote.menus import menu_principal + +def cena_demo(): + """Cena de demonstração.""" + turtle.setup(1110, 694) + carrega_img_fundo("fundo-com-degraus.png") + +# Renomei a função seguindo o padrao +def cena1(): + """ + Descrição da cena 1 + """ + pass + +# Renomei a função seguindo o padrao +def cena2(): + """ + Descrição da cena 2 + """ + pass + +# Renomei a função seguindo o padrao +def cena3(): + """ + Descrição da cena 3 + """ + pass + +# Renomei a função seguindo o padrao +def cena4(): + """ + Descrição da cena 4 + """ + pass + + +# Função principal +def main(): + carrega_personagens() + print("Os seguintes personagens foram carregados:") + formas_gif = [forma for forma in turtle.getshapes() if forma.endswith('.gif')] + print('\n'.join(formas_gif)) + + op = int(input(menu_principal)) + while op != 5: + if op == 1: + cena1() + elif op == 2: + cena2() + elif op == 3: + cena3() + elif op == 4: + cena4() + else: + print("Opção inválida.") + + op = int(input(menu_principal)) + + # turtle.done() + +# Chamada da função principal +if __name__ == "__main__": + main() + diff --git a/pacote/fundos/_README.md b/pacote/fundos/_README.md new file mode 100644 index 0000000..2ffa41c --- /dev/null +++ b/pacote/fundos/_README.md @@ -0,0 +1,4 @@ +# Imagens de fundo + +Procure imagens de fundo que tenham obstáculos. Por exemplo, você pode pesquisar no Google por . + diff --git a/pacote/fundos/fundo-com-degraus.png b/pacote/fundos/fundo-com-degraus.png new file mode 100644 index 0000000..5261ced Binary files /dev/null and b/pacote/fundos/fundo-com-degraus.png differ diff --git a/pacote/menus.py b/pacote/menus.py new file mode 100644 index 0000000..967f984 --- /dev/null +++ b/pacote/menus.py @@ -0,0 +1,14 @@ +menu_principal = """\ + + Animação de Fulano, Beltrano e Sicrano + ====================================== + + Listagem de cenas: + + 1. Cena 1 + 2. Cena 2 + 3. Cena 3 + 4. Cena 4 + 5. Sair + + Escolha sua opção: """ \ No newline at end of file diff --git a/pacote/nucleo.py b/pacote/nucleo.py new file mode 100644 index 0000000..68f06ea --- /dev/null +++ b/pacote/nucleo.py @@ -0,0 +1,64 @@ +from glob import glob +import os +import time +import turtle +from pathlib import Path + +# Configurações do balão +global balao +balao = turtle.Turtle() +balao.hideturtle() +balao.down() + +def carrega_personagens(): + """Carrega os personagens da animação. + + Carrega os personagens da animação, que são arquivos .gif + presentes no diretório 'personagens' do pacote. + """ + + cam_personagens = Path(__file__).parent / "personagens" + cam_atual = Path.cwd() + + os.chdir(cam_personagens.as_posix()) + for img in glob("*.gif"): + turtle.register_shape(img) + + os.chdir(cam_atual.as_posix()) + +def fala(personagem: turtle.Turtle, + texto: str, + angulo: int = 45, + distancia: int = 150, + tempo: float = 5): + """Exibe um balão de fala para um personagem. + + Exibe um balão de fala para um personagem, com o texto + passado como parâmetro, em um ângulo e distância específicos. + """ + + x,y = personagem.pos() + balao.goto(x, y) + balao.left(angulo) + balao.forward(distancia) + balao.write(fala) + time.sleep(tempo) + balao.undo() + balao.undo() + balao.undo() + +def carrega_img_fundo(img_fundo: str): + """Carrega uma imagem de fundo para a tela. + + Carrega uma imagem de fundo para a tela, que é um arquivo .gif + presente no diretório 'fundos' do pacote. + """ + + cam_img_fundo = Path(__file__).parent / "fundos" / img_fundo + + if cam_img_fundo.exists() and cam_img_fundo.is_file(): + turtle.bgpic(cam_img_fundo.as_posix()) + else: + print(cam_img_fundo.as_posix()) + print('Imagem de fundo não encontrada!') + diff --git a/pacote/personagens/__README.md b/pacote/personagens/__README.md new file mode 100644 index 0000000..62cd7ae --- /dev/null +++ b/pacote/personagens/__README.md @@ -0,0 +1,6 @@ +# Personagens + +Você pode acrescentar seus próprios personagens. Lembre-se somente de colocar imagens no formato GIF e que tenham o fundo transparente. + +Há um catálogo de imagens GIF de animais disponível em . Escolha as que lhe agradar e acrescente-as a este diretório. + diff --git a/pacote/personagens/_cat.gif b/pacote/personagens/_cat.gif new file mode 100644 index 0000000..ffc62a8 Binary files /dev/null and b/pacote/personagens/_cat.gif differ diff --git a/pacote/personagens/_elephant.gif b/pacote/personagens/_elephant.gif new file mode 100644 index 0000000..40f6264 Binary files /dev/null and b/pacote/personagens/_elephant.gif differ diff --git a/pacote/personagens/_mouse.gif b/pacote/personagens/_mouse.gif new file mode 100644 index 0000000..92e63f0 Binary files /dev/null and b/pacote/personagens/_mouse.gif differ diff --git a/pacote/personagens/cat_.gif b/pacote/personagens/cat_.gif new file mode 100644 index 0000000..30f7c38 Binary files /dev/null and b/pacote/personagens/cat_.gif differ diff --git a/pacote/personagens/elephant_.gif b/pacote/personagens/elephant_.gif new file mode 100644 index 0000000..df1856c Binary files /dev/null and b/pacote/personagens/elephant_.gif differ diff --git a/pacote/personagens/mouse_.gif b/pacote/personagens/mouse_.gif new file mode 100644 index 0000000..af5a906 Binary files /dev/null and b/pacote/personagens/mouse_.gif differ