Primeira importação
|
@ -0,0 +1,8 @@
|
|||
__pycache__/
|
||||
|
||||
site/
|
||||
|
||||
.env
|
||||
.venv
|
||||
env
|
||||
venv
|
|
@ -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).
|
|
@ -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()
|
||||
|
|
@ -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>.
|
||||
|
After Width: | Height: | Size: 493 KiB |
|
@ -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: """
|
|
@ -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!')
|
||||
|
|
@ -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.
|
||||
|
After Width: | Height: | Size: 690 B |
After Width: | Height: | Size: 453 B |
After Width: | Height: | Size: 659 B |
After Width: | Height: | Size: 696 B |
After Width: | Height: | Size: 455 B |
After Width: | Height: | Size: 649 B |