Le ray-casting (renderWalls) est le coût dominant d'une frame, mais son résultat ne dépend que de la position de la lumière et des blocs - jamais du déplacement du joueur. On rend donc la scène statique (carte + obstacles + faisceau + récepteurs + portes) dans un buffer hors-écran, et on la recalcule uniquement quand c'est nécessaire ; sinon on la recopie. - renderStaticScene() regroupe les couches statiques. checkReceptors() (qui échantillonne la VRAM du faisceau) puis checkDoors() y sont résolus, donc une porte s'ouvre dès la frame qui résout l'énigme (avant : 1-2 frames de retard). - Une signature (positions lumière + 4 blocs) détecte tout changement, quelle qu'en soit la cause (joueur via la lumière, monstre/boss poussant un bloc). - Rebuild forcé au chargement de niveau et après le menu Options (qui modifie l'alpha du faisceau). - Buffer alloué par malloc ; si l'allocation échoue, repli sur un rendu complet à chaque frame (comportement d'origine). Les couches dynamiques (blocs, lumière, trésors, monstres, boss, joueur, HUD) restent redessinées chaque frame par-dessus le cache. Marcher dans une salle ne recalcule plus le faisceau : gain majeur attendu sur le ressenti. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| assets-cg | ||
| src | ||
| .gitignore | ||
| build | ||
| CMakeLists.txt | ||
| LICENSE.txt | ||
| README.md | ||
MagicLight pour Casio Graph 90+E
Hello,
voici la première release de Magic Light en version 1.0A pour vous amuser un peu.
Le jeu dispose de 33 niveaux hardcodés afin de vous faire découvrir le gameplay.
Il s'agit d'un petit puzzle game dont le but sera de se balader dans un château, mais avec des portes fermées qui ne peuvent s'ouvrir que si les bons détecteurs sont éclairés avec la bonne lumière (correspondant à la couleur du détecteur), chaque porte peut être ouverte en activant 1, 2 ou 3 détecteurs de couleur à la fois.
La lumière de base est blanche (petite boule au centre de l'écran qui peut être sélectionnée avec F2 et déplacée avec les flèches). Quand la lumière traverse les blocs de couleurs, Rouge, Vert, Bleu ou Noir, sa teinte change. A vous de trouver la bonne position de la lumière et des blocs pour ouvrir les portes.
Quand une porte est ouverte, donnant sur un escalier, notre perso peut franchir la porte et changer de pièce. La minimap sur la droite se trace au fur et à mesure de votre avancée.
Pour la compilation : fxsdk build-cg
ou pour les fainéants : ./build dans le répertoire
Listing des contrôles en jeu :
- [F1] à [F6] sélectionner l'entité à déplacer : JOUEUR / LUMIERE / BLOCS de CONVERSION
- [OPTN] affiche le menu d'options
- [EXIT] Pause / Menu pour quitter.
- [SHIFT] Ouvre les coffres / Fait disparaitre les coffres ouverts
- [FLECHES] pour mouvoir l'entité selectionnée