https://github.com/aaneleh/pg2025-gb
Projeto para avalição de processamento gráfico 2025/1, UNISINOS
https://github.com/aaneleh/pg2025-gb
cpp game opengl
Last synced: 3 months ago
JSON representation
Projeto para avalição de processamento gráfico 2025/1, UNISINOS
- Host: GitHub
- URL: https://github.com/aaneleh/pg2025-gb
- Owner: aaneleh
- Created: 2025-06-20T01:56:01.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-28T09:39:53.000Z (about 1 year ago)
- Last Synced: 2025-06-28T10:18:38.422Z (about 1 year ago)
- Topics: cpp, game, opengl
- Language: C
- Homepage:
- Size: 656 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🍄 Jogo Isométrico – Coletando Cogumelos
## Objetivo
**coletar todos os itens espalhados pelo mapa e, depois, alcançar o tile de objetivo para vencer**.
O cenário é um tabuleiro isométrico com obstáculos, tiles caminháveis, água, lava e diferentes tipos de terreno. Ao pisar em determinadas áreas, o terreno pode mudar de cor **(troca de tile).** Quando o jogador coletar todas os cogumelos, ele vence o jogo.
- **Só é possível caminhar em tiles considerados "caminháveis" (definidos no arquivo de configuração).**
- **Alguns tiles mudam de estado ao serem pisados (por exemplo, pedra vira lava).**
- **O jogo termina quando todos os itens são coletados e o personagem alcança o tile objetivo.**
## Como funciona a lógica do jogo
1. **Leitura do arquivo de configuração (`tilemap.txt`)**
O jogo carrega todas as informações sobre tiles, mapa, itens e regras a partir desse arquivo.
Isso inclui:
- Nome do tileset, dimensões dos tiles e do mapa
- Matriz do mapa (tipo de cada tile)
- Quais tiles são caminháveis
- Imagem e posições dos itens coletáveis
2. **Movimentação:**
O Personagem se movimenta em 8 direções, controlado tanto pelas teclas de seta quanto pelas teclas WASD.
**Movimentação Diagonal:** Use as teclas de seta para se mover nas direções diagonais:
* **`↑` (Seta para Cima):** Move o personagem para **Noroeste** (para cima e para a esquerda).
* **`→` (Seta para Direita):** Move o personagem para **Nordeste** (para cima e para a direita).
* **`↓` (Seta para Baixo):** Move o personagem para **Sudeste** (para baixo e para a direita).
* **`←` (Seta para Esquerda):** Move o personagem para **Sudoeste** (para baixo e para a esquerda).
**Movimentação Reta (Teclas WASD)**
Use as teclas WASD para se mover nas direções retas (Norte, Sul, Leste, Oeste):
* **`W`:** Move o personagem para **Norte** (para cima).
* **`S`:** Move o personagem para **Sul** (para baixo).
* **`A`:** Move o personagem para **Oeste** (para a esquerda).
* **`D`:** Move o personagem para **Leste** (para a direita).
3. **Coleta de itens:**
Ao entrar em um tile que contém um item, esse item é removido do mapa e incrementa o contador de itens coletados.
O item some visualmente, e o console exibe a mensagem de coleta.
4. **Troca de tile:**
Certos tiles mudam seu tipo ao serem pisados (por exemplo, pedra pode virar lava).
Essa lógica é definida no código e pode ser configurada para alterar apenas o tile atual ou outros ao redor.
5. **Objetivo de vitória:**
Após coletar todos os itens, o jogador deve alcançar o tile objetivo (definido no mapa) para vencer.
O jogo exibe uma mensagem de vitória e é encerrado.
## Exemplo de configuração (`tilemap.txt`)
```
TileSet.png 5 57 114
15 15
1 0 0 0 0 0 0 0 3 3 3 3 3 3 3
0 3 0 0 0 3 0 0 1 1 3 3 3 3 3
0 0 0 0 0 0 0 0 0 0 1 1 3 3 3
0 0 0 0 4 4 4 4 0 0 0 1 1 1 3
0 4 4 4 4 4 4 4 0 0 0 0 0 1 1
4 4 4 4 4 4 4 4 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
4 4 4 4 4 4 4 2 2 2 2 2 2 2 2
4 4 4 4 4 4 4 4 2 2 2 2 2 2 9
0 1 2 -1
cogumelo.png
0 0
1 1
2 2
3 3
```
- As linhas acima informam:
- **Tileset:** nome, quantidade de tipos e dimensões
- **Tamanho do mapa:** (15 x 15)
- **Mapa:** matriz de tipos de tiles
- **Tiles caminháveis:** 0, 1, 2
- **Arquivo de item:** `cogumelo.png`
- **Posições dos itens:** (0,0), (1,1), (2,2), (3,3)
---
## Complementando a lógica | 🍄 Jogo Isométrico – Coletando Cogumelos
Através do arquivo de configuração é possível alterar o mapa, adicionar/remover itens, mudar os tiles caminháveis ou até o tileset, sem tocar no código.
- **A lógica de movimentação impede sair do mapa ou andar em obstáculo.**
- **A coleta, troca de tile e objetivo são processados a cada movimento:**
Ao mover, o código checa se há item para coletar, se o tile precisa ser trocado, e se venceu.
- **Novos tipos de tile ou mecânicas** podem ser adicionados apenas alterando a matriz e as regras de troca/objetivo no código.
---
Desenvolvido para a disciplina de Processamento Gráfico | GrauB
Alunas: **Isadora Albano, Helena Kurz, Nathaly Loggiovini**