Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » Gestion "couleur transparente" sprites fxSDK/gint
Slyvtt En ligne Maître du Puzzle Points: 2410 Défis: 17 Message

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


Dark storm Hors ligne Labélisateur Points: 11641 Défis: 176 Message

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
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Lephenixnoir En ligne Administrateur Points: 24673 Défis: 170 Message

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).
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Slyvtt En ligne Maître du Puzzle Points: 2410 Défis: 17 Message

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.
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Lephenixnoir En ligne Administrateur Points: 24673 Défis: 170 Message

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).
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Slyvtt En ligne Maître du Puzzle Points: 2410 Défis: 17 Message

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
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Shadow15510 Hors ligne Administrateur Points: 5504 Défis: 18 Message

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
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque


LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 184 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd