RAINBOW ISLANDS

par davidnurdin · Remakes
pas encore noté
▶ Jouer Sources Éditer GitHub
games/rainbow-island / README.md · commit d529485
# rainbow-islandLe remake de *Rainbow Islands* version Amstrad CPC (Graftgold, 1989) avec JumPHP. Présentation du projet :le [README du dépôt](../../README.md).![L'écran titre](site/images/title.png)## Commandes (depuis la racine du dépôt)```bashbin/jumphp install rainbow-island   # dépendancesbin/jumphp run rainbow-island       # jouer sur le bureaubin/jumphp test rainbow-island      # php -l, phpstan, démo de 600 images sans écranbin/jumphp build rainbow-island     # version navigateur -> dist/webbin/jumphp serve rainbow-island     # http://localhost:8080bin/jumphp deploy                   # site/ à la racine du domaine, le jeu dans /play/```Pour essayer un round ou un boss directement :```bashJUMPHP_SCENE='App\Scene\PlayScene' JUMPHP_SCENE_PARAMS='{"round":13}' bin/jumphp shot rainbow-island 200JUMPHP_SCENE='App\Scene\PlayScene' JUMPHP_SCENE_PARAMS='{"round":28,"arena":true}' bin/jumphp shot rainbow-island 200````round` va de 1 à 28, `arena` démarre au panneau G (devant le boss au 4e round d'une île), `demo` fait jouerun robot.## Comment c'est fait| Dossier | ||---|---|| `src/Scene/` | `LoadingScene` (l'écran de chargement d'origine) → `TitleScene` → `PlayScene` → `EndingScene` ; par-dessus : `PauseScene`, `GameOverScene` (continue), `OptionsScene` || `src/Entity/` | `Bub`, `Rainbow`, `Enemy` (marcheurs et volants), `Item` (fruits, diamants, bonus), `Boss` || `src/World/` | `Island` (palette, ennemis, boss), `Round` (la carte : 32 colonnes de tuiles de 8 px), `Terrain` (où l'on peut se tenir : dessus des tuiles pleines, traversées par-dessous, et les arcs-en-ciel) || `src/Game/` | `Session` (score, vies, round, diamants, meilleur score sauvegardé), `ScoreBoard` || `src/Arcade/` | `Artwork` (textures et sons), `ArcadeFont` (la police du CPC, 5 couleurs) || `assets/` | extraits de la disquette : 28 cartes JSON, tuiles et sprites des 7 îles, police, écran de chargement, musiques et bruitages Ogg || `site/` | le site : `index.html` (SEO, données structurées), `images/`, `robots.txt`, `sitemap.xml` (`{{DOMAIN}}` remplacé au déploiement) || `tools/extract/` | l'extraction des assets depuis la disquette (adresses mémoire, scripts) || `tools/site/` | `shots.sh` refait les captures et les images du site (`make-images.py`, à partir des vraies tuiles) |L'écran fait 256 × 176 comme sur le CPC (128 pixels du mode 0, dessinés deux fois plus larges) : 16 lignesde scores et 160 lignes de jeu. Les vitesses et les délais viennent de l'original (observés dansl'émulateur, qui tourne à 50 images par seconde).## L'extractionLes assets ont été sortis de la disquette avec[dsk2jumphp](https://github.com/davidnurdin/dsk2jumphp) (un émulateur CPC sans écran qui note tout ce que faitle jeu). `tools/extract/README.md` donne les adresses trouvées et la commande qui refait `assets/` à partirde votre propre `rainbow.dsk` (la disquette n'est pas dans le dépôt).Ce qui reste incertain : certains types d'ennemis (déduits de l'ordre des images), et les boss des îles 2 à6, dessinés ici avec le plus grand sprite de l'île en double taille.