Primeira importação

This commit is contained in:
Jurandy Soares 2025-02-27 08:41:51 -03:00
commit 26b9e89175
14 changed files with 213 additions and 0 deletions

8
.gitignore vendored Normal file
View File

@ -0,0 +1,8 @@
__pycache__/
site/
.env
.venv
env
venv

44
README.md Normal file
View File

@ -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).

73
main.py Normal file
View File

@ -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 <cena_descricao_breve_cena>
def cena1():
"""
Descrição da cena 1
"""
pass
# Renomei a função seguindo o padrao <cena_descricao_breve_cena>
def cena2():
"""
Descrição da cena 2
"""
pass
# Renomei a função seguindo o padrao <cena_descricao_breve_cena>
def cena3():
"""
Descrição da cena 3
"""
pass
# Renomei a função seguindo o padrao <cena_descricao_breve_cena>
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()

4
pacote/fundos/_README.md Normal file
View File

@ -0,0 +1,4 @@
# Imagens de fundo
Procure imagens de fundo que tenham obstáculos. Por exemplo, você pode pesquisar no Google por <https://www.google.com/search?q=super+mario+bros+2d+background>.

Binary file not shown.

After

Width:  |  Height:  |  Size: 493 KiB

14
pacote/menus.py Normal file
View File

@ -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: """

64
pacote/nucleo.py Normal file
View File

@ -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!')

View File

@ -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 <https://github.com/jurandysoares/manima/tree/main/manima/images/animal>. Escolha as que lhe agradar e acrescente-as a este diretório.

BIN
pacote/personagens/_cat.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 690 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 453 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 659 B

BIN
pacote/personagens/cat_.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 696 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 455 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 649 B