Planète Casio - Projets de programmation - Flux RSS http://www.planet-casio.com Programmes Casio, Jeux, Cours pour Calculatrices Casio fr-FR https://www.planet-casio.com/images/logo.gif Planète Casio - Projets de programmation - Flux RSS http://www.planet-casio.com 55 50 Programmes Casio, Jeux, Cours pour Calculatrices Casio. Mon, 17 Jan 2022 09:44:07 GMT Mon, 17 Jan 2022 09:44:07 GMT contact@planet-casio.com (Planet Casio) contact@planet-casio.com (Planet Casio) 5 Revisite de la pseudo-3d https://www.planet-casio.com/Fr/forums/topic16981--.html J'étais intrigué face a ce gif qui montre le meilleur design pseudo-3d que j'ai vu jusqu'a maintenant https://media.discordapp.net/attachments/244242213138071552/930816978107658240/source.gif J'ai donc essayé de refaire le système de pseudo 3d, ce qui donne pour l'instant ça https://media.discordapp.net/attachments/929050845113364570/930921827876872202/krad.gif (fait sur sfml en 384x216) Bien sur, c'est pas encore le meme systeme exactement, mais ca s'en rapproche (il manque le stretching et le changement sur l'axe y et bien sur c'est plus tolerant), et en fait, comme vous l'avez pu voir avec l'outline, le systeme est tres simple, c'est juste du plan7 standard, mais au lieu de lignes c'est des rectangles. Dans le futur ce serait possible de faire un engin qui supporte ce mechanisme et qui enregistre rectangle par rectangle tout dans une matrice tri-dimensionelle, pour le reste des sprites il n'y a qu'un systeme de zoom plus l'element se rapproche, et l'avion ne fait que tourner un peu a chaque changement de mouvement. Je vous laisse le code commenté ici si vous voulez le modifier : https://pastebin.com/JfXYJPaK Modele actuel : https://media.discordapp.net/attachments/929050845113364570/931230584959799316/ezgif-6-9d8db6b0a5.gif Wed, 12 Jan 2022 21:39:29 +0100 Magic Light v1.0 https://www.planet-casio.com/Fr/forums/topic16978--.html Hello Tout le Monde, Après de longues semaines, voici enfin la v1.0A de Magic Light https://i.imgur.com/ukoDUkr.png Pour présenter le jeu, je vais reprendre les mots de Critor : Magic Light est un puzzle game et pour le coup une création originale, à ce jour une exclusivité sur Graph 90+E tirant de plus pleinement profit de son écran couleur comme nous allons le voir ensemble. Après un menu d'accueil stylé et animé, entrons donc dans le vif du sujet. Tu te dois ici d'arpenter les différentes salles d'un donjon ... à la recherche des fragments de lumière dérobés aux villageois par le Sorcier Noir et ses 4 Magiciennes de Filles ... afin de ramener couleurs et joie disparues au village. Pour cela, tu dois te rendre dans le château forteresse du Magicien où il a caché son butin. Mais les portes sont fermées et ne peuvent s'ouvrir que si tu résous le puzzle de lumière que te posera chaque salle. Autour de chaque salle sont donc disposés des portes ainsi que des capteurs réagissant à certaines couleurs. Chaque porte est connectée à un certain nombre de capteurs, de 1 à 3, et ne s'ouvre que si ils sont tous éclairés simultanément par les bonnes couleurs. Pour cela tu disposes dans chaque salle de plusieurs éléments déplaçables avec les touches fléchées du clavier, après les avoir sélectionnés avec les touches [F1] à [F6] correspondant au menu de bas d'écran : - le personnage à faire sortir de la salle - une boule de cristal émettant une lumière blanche, initialement au centre - des blocs filtrant la lumière et ne laissant passer que certaines couleurs : les blocs rouge, vert, bleu et noir https://i.imgur.com/atFRWsd.png Pour savoir quels capteurs sont associés à une porte, il te faut les éclairer. Un indicateur s'allumera alors au-dessus des portes concernées. https://i.imgur.com/7Jy3UyZ.png Bien entendu, le château grouille de monstres en tout genre et le Sorcier ainsi que les Magiciennes feront tout pour te dissuader de reprendre leur butin et le ramener au village. Il te faudra donc faire preuve de prudence et de dextérité en plus de jugeote pour traverser cette épreuve. Le moteur physique codé pour le jeu permet de projeter la forme correcte des faisceaux lumineux sur les murs et les obstacles, mais pas seulement : - selon les niveaux, des blocs fixes peuvent également être présents et bloquer le passage de la lumière - et les blocs filtrant la lumière peuvent être combinés pour former de nouvelles couleurs par synthèse additive Il vous faudra donc réfléchir à deux fois pour positionner tout ce petit monde à la bonne place, sachant les monstres sont là pour vous embêter et ne vous veulent pas forcément que du bien. https://i.imgur.com/LkYaGSm.png Contrôles du jeu : [F1] à [F6] sélectionner l'entité à déplacer : JOUEUR / LUMIERE / BLOCS de CONVERSION [FLECHES DE DIRECTION] permet de déplacer l'entité sélectionnées (si le mouvement est possible) affiche le menu d'options permet d'ouvrir un coffre pour en extraire le bonus (si le joueur est positionné dessus), un second appui fait disparaitre le coffre. Pause / Menu pour quitter. Les menus devraient être assez clairs pour vous permettre de jouer simplement. Le jeu offre 3 niveaux de difficulté : - facile : avec 5 points de vie, permet de ne pas galérer - normal : avec 3 points de vie, permet de mieux ressentir la pression des monstres - hardcore : c'est simple, t'es touché ... t'es mort !! https://i.imgur.com/Fq8iV4x.png Il vous faudra donc réussir à parcourir les 33 niveaux du jeux et affronter 1000 dangers afin de retrouver les 5 fragments du "Jewel of Colors" et ainsi rapporter la lumière et les couleurs aux villageois. Téléchargement ici : Magic Light 1.0A Ciao Sly ah oui, j'oubliais : @RDP Mon, 10 Jan 2022 22:00:01 +0100 Interference https://www.planet-casio.com/Fr/forums/topic16977--.html Hey. Interference sera un metroidvania dans lequel vous contrôlerez Scarlet. Feat un grappin de ses morts. Et des ennemis. Et un G U N. interference-2.png Le jeu sera beau (normalement), moyennement long (normalement), sans cinématique ni trop de dialogue (normalement), avec – spoiler Hollow Knight – une zone optionnelle entière extrêmement dure et frustrante (sûr et certain). Coming soon™ C'est tout, bonne soirée. Lien du dépôt. PS: C'est pas un plateformer >:o Mon, 10 Jan 2022 20:26:46 +0100 Gint - fondu au gris (ou retour à la couleur) d'une image bopti https://www.planet-casio.com/Fr/forums/topic16976--.html Hello, j'aimerai avoir un effet de "rotation" de palette sur une image bopti p4 ou p4 (avec alpha) afin de faire un fondu au gris (image couleur --> image en niveau de gris) et/ou l'inverse (image en gris --> retour en couleur). Pour ce faire j'aurais besoin de "choper" la palette originale de l'image bopti en RGB pour pouvoir la modifier et la réinjecter dans l'image avant un dimage()/dupdate(). C'est faisable ? Un indice pour acceder au membre palette d'une bopti ? A plus et merci d'avance Ciao Sly Mon, 10 Jan 2022 10:32:29 +0100 Windmill / fxconv : conversion obj en c https://www.planet-casio.com/Fr/forums/topic16972--.html Bonjour à tous, J'aimerai mettre les mains dans fxconv pour convertir un fichier 3d .obj en du code C. Je ne sais pas par où commencer ni qu'elle approche prendre. Grosso modo j'ai un fichier 3D qui ressemble à ça : v 0.000000 27.684446 72.248153 v -28.296346 27.684446 45.000000 v -28.296346 -27.684446 45.000000 v 0.000000 -27.684446 72.248153 v 28.296346 27.684446 45.000000 v 28.296346 -27.684446 45.000000 v -28.296346 -27.684446 0.000000 v 28.296346 -27.684446 0.000000 v -28.296346 27.684446 0.000000 v 28.296346 27.684446 0.000000 vt 3.928288 5.536889 0.000000 vt 0.000000 5.536889 0.000000 vt 3.928288 0.000000 0.000000 vt 0.000000 0.000000 0.000000 vt 3.928288 5.536889 0.000000 vt 0.000000 5.536889 0.000000 vt 3.928288 0.000000 0.000000 vt 0.000000 0.000000 0.000000 vt 0.000000 0.000000 0.000000 vt 5.659269 0.000000 0.000000 vt 0.000000 4.500000 0.000000 vt 5.659269 4.500000 0.000000 vt 2.829635 7.224815 0.000000 vt 0.000000 0.000000 0.000000 vt 5.536889 0.000000 0.000000 vt 0.000000 4.500000 0.000000 vt 5.536889 4.500000 0.000000 vt 0.000000 0.000000 0.000000 vt 5.659269 0.000000 0.000000 vt 0.000000 4.500000 0.000000 vt 5.659269 4.500000 0.000000 vt 2.829635 7.224815 0.000000 vt 0.000000 0.000000 0.000000 vt 5.536889 0.000000 0.000000 vt 0.000000 4.500000 0.000000 vt 5.536889 4.500000 0.000000 vt -2.829635 -2.768445 0.000000 vt 2.829635 -2.768445 0.000000 vt -2.829635 2.768445 0.000000 vt 2.829635 2.768445 0.000000 f 1/1/1 2/2/2 4/3/3 f 4/3/3 2/2/2 3/4/4 f 5/5/5 1/6/6 6/7/7 f 6/7/7 1/6/6 4/8/8 f 7/9/9 8/10/10 3/11/11 f 3/11/11 8/10/10 6/12/12 f 3/11/11 6/12/12 4/13/13 f 9/14/14 7/15/15 2/16/16 f 2/16/16 7/15/15 3/17/17 f 10/18/18 9/19/19 5/20/20 f 5/20/20 9/19/19 2/21/21 f 5/20/20 2/21/21 1/22/22 f 8/23/23 10/24/24 6/25/25 f 6/25/25 10/24/24 5/26/26 f 8/27/27 7/28/28 10/29/29 f 10/29/29 7/28/28 9/30/30 # 10 vertices # 30 texture params # 16 facets Dans mon code C++ j'ai ceci : const VertexPoint exemple_v[] = { {0, -30, 0}, {0, 30, 0}, {0, -30, 60}, {0, 30, 60}}; const TexturePoint exemple_t[] = { {0, 0}, {1, 0}, {0, 1}, {1, 1}}; const Face exemple_f[] = { {&tex_brique, &tex_black, {0, 2, 1}, {0, 2, 1}}, {&tex_black, &tex_tuile, {1, 2, 3}, {1, 2, 3}}}; const Mesh exemple_m = {exemple_v, 4, exemple_t, 4, exemple_f, 2}; Tout les chiffres dans le code sont ceux que l'on retrouve dans le fichier obj à un endroit ou un autre. Ce que j'aimerai, c'est générer ce code, ou générer ces variables pour els réutiliser dans mon code. Est-ce faisable ? Merci ! Sat, 08 Jan 2022 23:14:58 +0100 Elysius - Suite scientifique C.Basic https://www.planet-casio.com/Fr/forums/topic16970--.html Salut à tous, Après une petite prise en main de ma nouvelle calculatrice et, surtout, la découverte de l'incroyable module C.Basic, il est temps de vous présenter ce qui sera mon premier gros projet sur ce site : Une suite d'outils en physique/chimie : :here: Un tableau périodique :here: Un recueil de constantes physico-chimiques :here: Un programme de conversion d'unités :here: Un programme d'analyse d'équations chimiques :here: Un programme de résolution de circuit électrique :here: Tout autre chose semblant intéressante :E Alors, je sais, il y en a déjà beaucoup sur le site, mais mon objectif est de fournir quelque chose de vraiment poussé en terme de fonctionnalités, d'informations disponibles et, surtout, de fournir un ensemble de programmes avec un identité graphique cohérente et une expérience utilisateur la meilleure possible ! J'ai déjà pas mal d'expérience à ce sujet sur ma graphe 100+, où j'avais à l'époque codé un tableau périodique complet et un programme de conversion, mais la lenteur du Casio Basic (surtout sur G100 ...) m'avait vite conduit à laisser de côté certaines fonctionnalités. Avec la découverte de C.Basic, ça permettrait d'avoir à la fois des programmes éditables On-Calc (donc où chacun pourrait ajouter ses propres constantes, unités, ... directement dans le code) mais avec une rapidité digne d'un Add-In (car, pour des utilitaires comme ça, je pense que le gain des add-ins par rapport à C.Basic serait négligeable). Bref, je crée ce topic pour voir si vous avez des idées de fonctionnalités pouvant servir en physique/chimie/ingéniérie et dont vous avez toujours rêvé :) Et en guise d'avout-goût, je vous joins ce à quoi ressemblera le menu principal (seule chose prête à être montrée pour l'instant :E ) https://www.planet-casio.com/storage/forums/menu2-16970.png Thu, 06 Jan 2022 09:07:02 +0100 dxn -- machine virtuelle de mort https://www.planet-casio.com/Fr/forums/topic16965--.html Salut ! J'ai commencé il y a quelques jours à travailler sur une machine virtuelle et son langage ASM associé destinés au gamedev expérimental. J'apprécierais énormèment des critiques sur le format du binaire, l'addressage et la syntaxe assembleur. Je suis relativement nouveau dans ce monde, et tout peut m'aider. Je l'ai nommé dxn. dxn combine des caractéristiques de langages que j'aime dans l'idée, mais ne fonctionnent tous pas exactement comme je le souhaiterais. Les inspirations principales de dxn sont : la programmation d'un Gameboy DMG, uxn, CHIP-8 et TIS-100. Le fichier concept.s de mon dépôt de développement contient un exemple de programme idéal. sample.s et sample.dxn représentent l'avancement actuel du projet. dxna est l'assembleur, dxnd le désassembleur. http://kiko.ovh/cgit/dxn/ Je veux terminer une toolchain complète pour systèmes POSIX, avec l'objectif final de porter un interpréteur dxn sur calculatrice. Maintenant que dxna et dxnd fonctionnent, je vais pouvoir attaquer le premier interpréteur de prototypage. Merci d'avoir lu jusqu'ici, tiens un cookie pour ton temps Sun, 02 Jan 2022 14:53:09 +0100 Tilesets et maps du Puzzle de l'Avent 2021 https://www.planet-casio.com/Fr/forums/topic16960--.html Je ne sais pas si ça peut intéresser des gens, mais comme j'ai passé pas mal de temps à concevoir le tileset et les maps du Puzzle de l'Avent 2021, je pense que ça vaut le coup de partager ici ces ressources. Si quelqu'un veut faire un jeu avec, lâchez-vous :) Tileset : Avent2021_tileset.png (en x2 ci-dessous) Maps : Avent2021_maps.zip (un exemple plus bas) Le tileset est un Wang tiles, ce qui est assez violent en termes de nombre de tiles mais très sympa au rendu à mon goût. Sauf erreur de ma part pour les transitions herbe/eau et neige/eau toutes les tiles sont faites. Comme vous pouvez le voir, sur les autres transitions il y a moins de variations ; c'est pas mal de copier/coller donc au besoin ça se complète facilement. Avent2021_tileset_x2.png La toute dernière ligne montre ce qui se passe si on a une transition entre trois milieux d'un coup ; la combinatoire explose assez vite donc je conseille de les éviter celles-là. x) Les maps sont faites avec Tiled. J'ai joint les fichiers dans l'archive pour l'inspiration ; notez quand même qu'elles sont faites avec une version différente (moins organisée) du tileset. Avent2021_map_Dec18.png J'ai laissé dans l'archive les montages avec les graphes de distance. J'avais tenté de faire un autotiling mais les règles ne marchaient pas bien, parfois pour des raisons très bizarres (tiles mal encodées dans les fichiers de règles) donc j'ai fini à la main. Voilà, si ça peut servir tant mieux ^^ Tue, 28 Dec 2021 11:36:06 +0100 addin en 2 parties https://www.planet-casio.com/Fr/forums/topic16952--.html J'ai bien avance sur la creation d'un addin en 2 parties. Voici un fichier testv.cc qui cree un vecteur (avec la uSTL) puis appelle une fonction declaree dans le fichier r8c2.h ci-dessous #define std ustl #include <vector> void r8c2_print_vector(const std::vector<int> & v); La fonction r8c2_print_vector affiche le vecteur, elle est implementee dans r82c.cc ci-dessous et sera ulterieurement stockee en RAM. #include <fxcg/keyboard.h> #include <fxcg/display.h> #include <fxcg/file.h> #include <fxcg/keyboard.h> #include <fxcg/system.h> #include <fxcg/misc.h> #include <fxcg/app.h> #include <fxcg/serial.h> #include <string.h> #include <stdio.h> #include <stdlib.h> #define std ustl #include <vector> #include <string> using namespace ustl; void r8c2_print_vector(const vector<int> & v){ for (int j=0;j<v.size();++j){ printf("%d\n",v); } } Et le fichier testv.cc avec le code de chargement de la fonction en ram et avec les commandes de compilation (a modifier selon installation) // -*- compile-command: "sh3eb-elf-g++ -g -mb -m4a-nofpu -mhitachi -std=c++11 -fpermissive -fno-use-cxa-atexit -fno-strict-aliasing -fno-rtti -fno-exceptions -I. -I/home/parisse/casiolocal/include/ustl -c r8c2.cc -o r8c2.o && sh3eb-elf-g++ -g -mb -m4a-nofpu -mhitachi -std=c++11 -fpermissive -fno-use-cxa-atexit -fno-strict-aliasing -fno-rtti -fno-exceptions -I. -I/home/parisse/casiolocal/include/ustl -c testv.cc -o testv.o && sh3eb-elf-g++ testv.o r8c2.o -g -static -nostdlib -Taddinram.ld -Wl,--gc-sections,--print-memory-usage -L. -L/home/parisse/casiolocal/lib -Wl,--start-group -ltommath -lustl -lm -lc -lgcc -Wl,--end-group -o testv.elf && sh3eb-elf-objdump -C -t testv.elf | sort > dump && sh3eb-elf-objcopy -R .comment -R .bss -R .rominram -O binary testv.elf testv.bin && sh3eb-elf-objcopy -j .rominram -O binary testv.elf testv.8c2 && mkg3a -n basic:Testv -n internal:TESTV -V 0.0.0 testv.bin testv.g3a && /bin/cp testv.g3a testv.8c2 ~/.wine/drive_c" -*- // debug with sh3eb-elf-gdb -i=mi -ex "target remote localhost:31188" testv.elf #include <fxcg/keyboard.h> #include <fxcg/display.h> #include <fxcg/file.h> #include <fxcg/keyboard.h> #include <fxcg/system.h> #include <fxcg/misc.h> #include <fxcg/app.h> #include <fxcg/serial.h> #include <string.h> #include <stdio.h> #include <stdlib.h> #define std ustl #include <vector> #include <string> #include "r8c2.h" using namespace ustl; unsigned ram2Msize=0; char ram_filename[]="\\\\fls0\\testv.8c2"; bool chk_ram2M(const char * filename,bool reload){ unsigned ram2Maddr=0x8c200000, ram2Mendaddr=ram2Maddr+ram2Msize; unsigned * ram2M=(unsigned *) ram2Maddr,*ram2Mend=(unsigned *) ram2Mendaddr; const unsigned chkinit=0x12345678; unsigned chk=chkinit,*ptr; const unsigned inc=1; if (ram2Msize){ // if it's too slow, modify incr for (ptr=ram2M;ptr<ram2Mend;ptr+=inc){ chk ^= (*ptr); } if (chk==*ptr) return true; // proba to return true with corruption is tiny, about 1/4e9 if (!reload) return false; } // load khicas overlay int nchar=strlen(filename); unsigned short pFile[nchar+1]; Bfile_StrToName_ncpy(pFile, (const unsigned char *)filename, strlen(filename)+1); int hf = Bfile_OpenFile_OS(pFile, READWRITE); // Get handle if (hf < 0) return false; // nothing to load int size=Bfile_GetFileSize_OS(hf); if (size>2*1024*1024-4 || Bfile_ReadFile_OS(hf,ram2M,size,0)!=size){ Bfile_CloseFile_OS(hf); return false; } ram2Msize=size; ram2Mendaddr=ram2Maddr+ram2Msize; ram2Mend=(unsigned *) ram2Mendaddr; Bfile_CloseFile_OS(hf); // compute chksum chk=chkinit; for (ptr=ram2M;ptr<ram2Mend;ptr+=inc){ chk ^= (*ptr); } *ptr=chk; // save chksum return true; } int main(){ if (!chk_ram2M(ram_filename,true)){ printf("%s%s\n","Unable to load ",ram_filename); int key; for(;;) GetKey(&key); return 0; } if (!chk_ram2M(ram_filename,false)){ printf("%s\n"," ",ram_filename); int key; for(;;) GetKey(&key); return 0; } int i=4321; string s("Coucou"); //int * jptr=new int; char * buf=(char *)malloc(256); char * buf2=new char[256]; printf("Hello\n"); // printf("malloc %d\n new %d\nstack %d",unsigned(buf)-0x88100000,unsigned(buf2)-0x8100000,unsigned(&buf)-0x88100000); strcpy(buf,"!!Hello abcdefghijklmnopqrstuvwxyz 123456789"); strcpy(buf2,"!!Hello2 abcdefghijklmnopqrstuvwxyz 123456789"); printf("%s\n",buf); printf("%s\n",buf2); // char buf[]="!!Hello abcdefghijklmnopqrstuvwxyz 123456789"; if (1){ std::vector<int> v(3); for (int j=0;j<v.size();++j){ v=j*j; } r8c2_print_vector(v); i=unsigned (&v[2])-0x08100000; // v.clear(); } int key; for(;;) GetKey(&key); return 0; } Voici le fichier loader addinram.ld pour stocker en RAM le contenu du fichier objet r8c2.o, en creant un fichier elf qu'on divisera ensuite en 2 fichiers, le fichier d'addin g3a et un fichier d'extension 8c2 qui sera charge par l'addin. OUTPUT_FORMAT(elf32-sh) OUTPUT_ARCH(sh3) ENTRY(initialize) MEMORY { rom : o = 0x00300000, l = 2M ram : o = 0x08100000, l = 64k /* pretty safe guess */ r8c2 (rx) : o = 0x8c200000, l = 3M-4 } SECTIONS { /* 2nd part of code at 0x8c20000 */ .rominram : { r8c2.o(.text) r8c2.o (.text.*) r8c2.o (.rodata) r8c2.o (.rodata.*) } > r8c2 /* Code, in ROM */ .text : { *(.pretext) /* init stuff */ *(.text) *(.text.*) } > rom /* Read-only data, in ROM */ .rodata : { *(.rodata) *(.rodata.*) } > rom /* RW initialized data, VMA in RAM but LMA in ROM */ .data : ALIGN(4) { _datald = LOADADDR(.data) ; _sdata = . ; *(.data) *(.data.*); _edata = . ; } >ram AT>rom /* Uninitialized data (fill with 0), in RAM */ .bss ALIGN(4) : ALIGN(4) { _bbss = . ; *(.bss) *(.bss*) *(COMMON) _ebss = . ; /* Extra unused static space */ _sextra = ALIGN(32); _eextra = ORIGIN(ram) + LENGTH(ram); } >ram } J'ai fait ce petit test en preparation d'une mise a jour majeure de KhiCAS qui pourrait utiliser beaucoup plus d'espace, pour recueillir l'avis des experts sur le meilleur modele a choisir (ceux qui ont lu jusqu'ici sont probablement des experts...). Mais d'abord j'ai un gros probleme avec l'emulateur, impossible d'ecrire dans la zone memoire 0x8c20000, est-ce qu'il y a une autre adresse a tester? Ou peut-etre que la zone de RAM n'est pas supportee par l'emulateur, ce qui me compliquerait le travail de mise au point, mais pas que, ca rendrait impossible l'execution a l'emulateur pour une demo dans un but pedagogique, Ensuite, mon idee serait d'avoir le moteur de calcul de giac en RAM jusqu'a une taille de 3M (ca gagne 1M par rapport aux 2M actuels) et de garder toute l'UI (ainsi bien sur que le chargeur en RAM) dans la partie addin en ROM. On peut meme envisager a moyen terme de rajouter mon implementation de MicroPython avec ma collection de modules pour avoir la meme chose que sur Numworks/Nspire. J'en profite pour signaler que j'ai mis a jour la section developpement de la doc de KhiCAS avec une description assez detaillee je pense de comment utiliser le debugger mis au point par redoste, (cf. ce fil) Sun, 19 Dec 2021 18:34:08 +0100 Magic Light v0.9B - Dernière version avant release finale https://www.planet-casio.com/Fr/forums/topic16951--.html Hello Tout le Monde, c'est avec un plaisir non dissimulé que je release aujourd'hui la dernière version béta (et portant la référence v0.9B) de Magic Light avant la version finale 1.0. https://i.imgur.com/jNBVR6r.png Pour présenter le jeu, je vais reprendre les mots de Critor : Magic Light est un puzzle game et pour le coup une création originale, à ce jour une exclusivité sur Graph 90+E tirant de plus pleinement profit de son écran couleur comme nous allons le voir ensemble. Après un menu d'accueil stylé et animé, entrons donc dans le vif du sujet. Tu te dois ici d'arpenter les différentes salles d'un donjon ... à la recherche des fragments de lumière dérobés par le Sorcier Noir et ses 4 Magiciennes de Filles ... afin de ramener couleurs et joie disparues au village. Mais les portes sont fermées et ne peuvent s'ouvrir que si tu résous le puzzle de lumière que te posera chaque salle. Autour de chaque salle sont donc disposés des portes ainsi que des capteurs réagissant à certaines couleurs. Chaque porte est connectée à un certain nombre de capteurs, de 1 à 3, et ne s'ouvre que si ils sont tous éclairés simultanément par les bonnes couleurs. Pour cela tu disposes dans chaque salle de plusieurs éléments déplaçables avec les touches fléchées du clavier, après les avoir sélectionnés avec les touches [F1] à [F6] correspondant au menu de bas d'écran : - le personnage à faire sortir de la salle - une boule de cristal émettant une lumière blanche, initialement au centre - des blocs filtrant la lumière et ne laissant passer que certaines couleurs : les blocs rouge, vert, bleu et noir https://i.imgur.com/blyDX6g.png Pour savoir quels capteurs sont associés à une porte, il te faut les éclairer. Un indicateur s'allumera alors au-dessus des portes concernées. https://i.imgur.com/btSzL2t.png Bien entendu, le château grouille de monstres en tout genre et le Sorcier ainsi que les Magiciennes feront tout pour te dissuader de reprendre leur butin et le ramener au village. Il te faudra donc faire preuve de prudence et de dextérité en plus de jugeote pour traverser cette épreuve. Le moteur physique codé pour le jeu permet de projeter la forme correcte des faisceaux lumineux sur les murs et les obstacles, mais pas seulement : - selon les niveaux, des blocs fixes peuvent également être présents et bloquer le passage de la lumière - et les blocs filtrant la lumière peuvent être combinés pour former de nouvelles couleurs par synthèse additive Il vous faudra donc réfléchir à deux fois pour positionner tout ce petit monde à la bonne place, sachant les monstres sont là pour vous embêter et ne vous veulent pas forcément que du bien. https://i.imgur.com/LkYaGSm.png Contrôles du jeu : [F1] à [F6] sélectionner l'entité à déplacer : JOUEUR / LUMIERE / BLOCS de CONVERSION [FLECHES DE DIRECTION] permet de déplacer l'entité sélectionnées (si le mouvement est possible) affiche le menu d'options [X,O,T] permet d'ouvrir un coffre pour en extraire le bonus (si le joueur est positionné dessus), un second appui fait disparaitre le coffre. Pause / Menu pour quitter. Les menus devraient être assez clairs pour vous permettre de jouer simplement. Le jeu offre 3 niveaux de difficulté : - facile : avec 5 points de vie, permet de ne pas galérer - normal : avec 3 points de vie, permet de mieux ressentir la pression des monstres - hardcore : c'est simple, t'es touché ... t'es mort !! https://i.imgur.com/Fq8iV4x.png Bien entendu, pour ne pas teaser tout le jeu, les fragments de lumière à collecter ne sont pas dans les 6 niveaux disponibles de cette démo, ainsi qu'un certain nombres de monstres/boss. A ce stade, seuls les 2 premiers niveaux (Levels 0 et 1) correspondent aux niveaux définitifs. Donc amusez vous, la version finale aura d'autres puzzles à résoudre. Fichier dispo dans la zone de téléchargement Ciao Sly Sun, 19 Dec 2021 15:01:21 +0100