|
|
5 päivää sitten | |
|---|---|---|
| assets | 5 päivää sitten | |
| scenes | 5 päivää sitten | |
| scripts | 5 päivää sitten | |
| .dockerignore | 5 päivää sitten | |
| .gitignore | 5 päivää sitten | |
| Dockerfile | 5 päivää sitten | |
| README.md | 5 päivää sitten | |
| export_presets.cfg | 5 päivää sitten | |
| manual.md | 9 vuotta sitten | |
| project.godot | 5 päivää sitten |
Gabriel Capella, 8962078
João Herique Luciano, 8535957
EP2 MAC0463
O jogo desenvolvido nesse projeto foi um estilo brick-break onde o objetivo é avançar de fases atingindo o núcleo vermelho dentro das camadas de blocos. Os blocos em questão podem ser destrúidos ao serem atingidos pela(s) bola(s) em jogo.
Satisfazendo alguns requisitos do trabalho, foram implementadas as seguin- tes funcionalidades:
Alguns detalhes que devem ser mencionados sobre a implementação:
Os power-ups caem como fichas com uma letra; pegue com a pá para usar. Novos power-ups aparecem conforme os níveis avançam:
| Ficha | Power-up | A partir do nível | Efeito |
|---|---|---|---|
| S | Salvar | 0 | Salva o nível atual |
| 3 | Bolas triplas | 0 | Até 3 bolas em jogo (cai quando a bola fica muito tempo sem tocar em nada) |
| P | Tamanho da pá | 0 | 50% de chance de dobrar ou reduzir a pá pela metade por 10 s |
| X | Super-bola | 0 | Quebra um bloco indestrutível; só cai se ainda houver um |
| Z | Câmera lenta | 2 | Bolas a 60% da velocidade por 8 s |
| C | Pegar | 4 | A pá segura a bola por 12 s; solte o dedo para lançar |
| U | Escudo | 6 | Uma barreira no fundo salva uma bola |
| O | Bola grande | 8 | Bola 60% maior por 10 s |
| F | Bola de fogo | 12 | Atravessa e quebra blocos por 5 s |
| ! | Pressa (negativo) | 15 | Bolas 35% mais rápidas por 6 s |
| L | Laser | 20 | A pá atira dois lasers por 6 s |
| * | Congelar | 25 | Os anéis param de girar por 8 s |
| B | Bola bomba | 30 | O próximo bloco atingido explode |
| H | Teleguiada | 40 | A bola curva em direção ao núcleo por 6 s |
O jogo foi desenvolvido originalmente com o framework cocos2d-x, em C++, para Android, e testado em um celular Motorola G4 com Android 7.0.
Hoje o jogo é um projeto Godot 4.7 em GDScript, portado do código
cocos2d-x mantendo o mesmo comportamento (geração de fases, power-ups,
efeitos e sons). Para editar, abra o project.godot no editor Godot.
scenes/: cenas (título, jogo, bola, pá, power-up, efeito de explosão)scripts/: um script por classe do jogo original (blocks.gd é o antigo BlocksLayer)assets/: fonte e sonsAs fases são geradas aleatoriamente e são infinitas. A dificuldade só aumenta com o nível: mais anéis (até 14), anéis girando mais rápido, bola mais rápida, mais blocos indestrutíveis e mais power-ups negativos.
A cada 50 níveis aparece um novo tipo de bloco, e a fração de blocos especiais cresce de 8% no nível 50 até 50%:
| Nível | Bloco | Comportamento |
|---|---|---|
| 50 | Água | 3 toques; esvazia a cada toque e segura a bola por um instante |
| 100 | Gelo | 2 toques; racha no primeiro e acelera a bola |
| 150 | TNT | Explode ao quebrar, levando os vizinhos (em cadeia) |
| 200 | Borracha | 2 toques; rebate a bola mais rápido |
| 250 | Fantasma | Some e reaparece; a bola atravessa quando ele some |
| 300 | Musgo | Cresce de novo uma vez, 8 s depois de quebrado |
| 350 | Ímã | 2 toques; puxa a bola quando ela passa perto |
O build roda dentro do Docker, com o Godot em modo headless. Antes de exportar, ele roda as duas cenas e falha se houver erros de script:
docker build --target test -t redcore-build .
id=$(docker create redcore-build) && docker cp $id:/project/build/RedCore.x86_64 build/ && docker rm $id
./build/RedCore.x86_64
Com BuildKit, docker build --output build . faz o mesmo em um passo.
Por enquanto só o export para Linux está configurado.