RPG no estilo Pokémon (Game Boy), feito em JavaScript puro como projeto de portfólio para praticar ECMAScript sem frameworks.
Abra o arquivo index.html diretamente no browser. Nenhuma instalação necessária.
Dica: Use a extensão Live Server no VSCode para recarregamento automático.
| Ação | Teclado |
|---|---|
| Mover | W A S D ou setas |
| Interagir / Falar | Z |
| Mobile | Botões direcionais na tela |
- Exploração em mapa tile-based com câmera seguindo o jogador
- Transição entre mapas via portais
- Batalhas por turno com animações (estilo Pokémon)
- Sistema de diálogo com efeito typewriter
- Suporte a dispositivos mobile com controles touch
wall_poke_port/
├── index.html # HTML principal + CSS inline
├── index.js # Entry point: loop principal e inicialização
│
├── src/
│ ├── core/
│ │ ├── classes.js # Classes base: Sprite, Monster, Boundary
│ │ └── gameState.js # Documentação do estado global (futura refatoração)
│ ├── scenes/
│ │ └── battleScene.js # Sistema de batalha: initBattle, animateBattle
│ ├── systems/
│ │ ├── collisionSystem.js # Detecção de colisão AABB
│ │ ├── mapSystem.js # Inicialização e troca de mapas
│ │ ├── inputSystem.js # Input de teclado/touch e movimentação
│ │ └── chatSystem.js # Sistema de diálogo typewriter
│ └── ui/
│ └── mobileUI.js # Detecção mobile e controles touch
│
├── data/
│ ├── attacks.js # Definição de ataques (nome, dano, tipo, cor)
│ ├── audio.js # Instâncias de áudio (Howler.js)
│ ├── battleZones.js # Tiles de zona de batalha por mapa
│ ├── characters.js # Dados de NPCs por mapa
│ ├── collisions.js # Tiles de colisão por mapa
│ ├── monsters.js # Stats dos monstros (Emby, Draggle)
│ └── portals.js # Portais e placas (destinos, imagens, diálogos)
│
├── img/
│ ├── Player/ # Sprites do jogador (4 direções)
│ ├── maps/map1/ # Imagens do mapa 1 + portals/
│ ├── battle/ # Assets de batalha (background, fireball, thornLeaves)
│ ├── oldMan/ # Sprite NPC velho
│ └── villager/ # Sprite NPC aldeão
│
└── audio/ # Arquivos de áudio (.wav, .mp3)
- Adicionar sprite em
img/ - Definir em
data/monsters.jscomposition,image.src,frames,attacks - Referenciar em
src/scenes/battleScene.js
- Adicionar em
data/attacks.jscomname,damage,type,color - Adicionar animação no
switch(attack.name)emsrc/core/classes.js
- Exportar imagens do Tiled e adicionar em
img/maps/ - Adicionar paths em
image_mapeforegroundImage_mapnoindex.js - Adicionar
offsetdo mapa noindex.js - Exportar tiles de colisão →
data/collisions.js - Exportar tiles de batalha →
data/battleZones.js - Definir portais/placas →
data/portals.js
- Adicionar sprite em
img/ - Definir entrada em
data/portals.jscomtype.id,type.type,img, eteleportoutext
| Biblioteca | Versão | Uso |
|---|---|---|
| Howler.js | 2.2.3 | Gerenciamento de áudio |
| GSAP | 3.9.1 | Animações e tweening |
| Font Awesome | 5.5.0 | Ícones dos controles mobile |
| Press Start 2P | — | Fonte estilo 8-bit |
| Tiled | — | Editor de mapas tile |



