Gestion "couleur transparente" sprites fxSDK/gint
Posté le 16/11/2021 16:35
Hello,
je suis en train d'avancer mon petit jeu puzzle et j'essaie désespérément d'avoir mes sprites de bonhomme avec un fond "transparent".
Je pars d'une image PNG que j'intègre à mon projet, je la mets dans mes méta-data, je l'importe bien dans mon code, mais j'aimerais qu'une couleur (en l'occurrence le noir) soit géré comme la couleur transparente pour le pas avoir cela (cf autour du bonhomme au milieu de l'écran) :
Donc au debut de mon code j'ai un
extern bopti_image_t sprites;
et plus loin, j'essaie de "forcer" la transparence sur la couleur noire comme suit :
sprites.profile = 1; // Correspond au profil PX_R5G6B5A
sprites.alpha = 0x0000; // Pour mettre la couleur transparente sur le noir (0x0000 en R5G6B5)
dsubimage( x, y, &sprites, 0,0,16,16, DIMAGE_NONE );
Mais cela ne fonctionne pas, mes pixel noirs sont affichés "normalement", alors que j'espérais qu'ils ne le soit pas et voir le "fond" de l'image.
Je pense que je ne m'y prends pas de la bonne manière. HELP !!! ;-)
Un coup de pouce serait grandement apprécié. Quelqu'un peut il m'expliquer ma bêtise et comment faire ?
(Si besoin je peux modifier l'image de départ.)
Merci
Sly
Citer : Posté le 16/11/2021 16:37 | #
De mémoire il suffit d'ajouter dans la transparence dans le PNG de base, et fxconv se débrouille pour réserver une couleur et l'utiliser en tant que transparence. Pas besoin de le faire à la main
Citer : Posté le 16/11/2021 16:46 | #
C'est exactement ça, enregistre un PNG transparent et ça roulera tout seul. J'en parlais tout à l'heure ; le format est RGB565 moins 1 une couleur.
Tu peux aussi forcer le type de conversion en ajoutant un paramètre profile dans fxconv-metadata.txt : les valeurs possibles sont rgb565, rgb565a (le 16-bit moins 1couleur), et p{4,8}_{rgb565,rgb565a} pour les formats à palette (4 bits et 8 bits respectivement) encodant des couleurs 16-bits (sans et avec transparence respectivement).
Citer : Posté le 16/11/2021 17:56 | #
Bon je vais insister un peu,
mais pour le moment ça marche pas.
Les options rgb565 et rgb565a ne sont pas reconnues dans fxconv-metadata.txt
Je pense que l'enregistrement de la transparence dans mon PNG avec Gimp pose aussi souci.
Citer : Posté le 16/11/2021 19:12 | #
Dans GIMP il faut bien que tu aies un canal alpha sur ton calque. Enregistre en PNG sans te poser de questions une fois que c'est fait.
Pardon j'ai oublié que j'avais modifié récemment les formats mais que ça n'a pas encore été publié. Les noms dans ta version sont donc r5g6b5, r5g6b5a, p4 et p8 (les deux derniers autorisent toujours la transparence, ie. c'est pareil que p4_rgb565 et p8_rgb565).
Citer : Posté le 16/11/2021 21:01 | #
C'est bon, je vous remercie tous les deux, Lephe' et Dark Storm.
Donc, effectivement GIMP doit exporter en PNG avec les options suivantes :
ensuite dans fxconv-metadata.txt, il faut mettre:
light.png:
type: bopti-image
profile: r5g6b5a
name: light
et là ça passe.
Bon, un problème de plus en moins
Next ...
Ciao
Sly
Citer : Posté le 16/11/2021 21:23 | #
Pour le profile, je pense que c'est équivalent, mais il me semble que tu peux aussi mettre p4 ou p8 pour l'encodage