Prise en compte de l'opacitée

Hello tout le monde ! Tout d’abord sympa ce petit logiciel pour le moment je l’ai juste survolé mais il a l’air de pouvoir faire pas mal de choses ! :mrgreen:
Je viens juste de m’y mettre et j’ai déjà un problème :frowning: je crée toutes mes images avec The Gimp et je les enregistre en PNG pour la transparence. Ensuite j’importe les images dans le logiciel je crée mes objets tout ça…Le problème est que quand je fais un aperçu du jeu la transparence de mes images est bien prise en compte mais pas l’opacitée !

Je ne sais pas si j’arrive à me faire comprendre par exemple je fais un gros rectangle bleu sur Gimp et je règle son opacitée a 50%, j’enregistre en png et ensuite j’importe l’image. Quand j’observe mon carré bleu dans les fenètres “éditer l’objet” et “modifier les propriétés de l’image” pas de soucis l’opacitée est prise en compte. Mais quand je lance l’aperçu au mieux d’avoir un rectangle bleu à 50% opaque j’ai un rectangle bleu 100% opaque.

Il y a quelque chose que je fais mal ? J’ai cherché un peu par moi même et sur ce forum mais pas trouvé la solution, une idée ?

Tu peux régler l’opacité d’un objet dans Game Develop.
(action : sprite > visibilité)
Je n’ai pas eu de problème avec les images PNG semi-transparentes créées dans Gimp ou dans Photoshop.

L’opacité est très bien gérée par SFML, la bibliothèque graphique utilisée par Game Develop. Je viens de tester, j’arrive sans problème à afficher une image qui devient progressivement transparente.

Si il y a vraiment un problème, ça viendrait à mon avis de la méthode d’enregistrement utilisée par The GIMP. Essaie de modifier des options à l’enregistrement ou d’utiliser un autre logiciel pour ré-enregistrer ton image. ( Je n’ai jamais eu de problème avec Paint.NET ).

J’ai testé pas mal de trucs et je me rend compte que le problème ne viens pas de gimp.
Je met mon objet directement sur l’écran de jeu grace au glisser-déposer et là mon image n’a aucun problème d’opacitée, même en lançant l’aperçu tout fonctionne.
Je crée un évènement qui va créer le même objet un peu en dessous. Et là quand je lance l’aperçu j’ai donc mes deux images, le 1er rectangle bleu (par glisser déposer) impeccable, le 2ème (par évènement) lui ne gère pas l’opacité.
J’avoue ne pas comprendre. Il s’agit peut être d’un problème avec la façon dont je créée mon évènement ? (j’ai fais au plus simple condition= touche “return” appuyée / action= créer objet “Rectangle” coordonnée…).

Je vous met une petite image pour mieux comprendre:
Le rectangle du haut est créé en glisser déposer celui du bas par évènement “créer un objet”

:bulb: Je me suis fait plusieurs fois piéger en créant des objets semi-transparents. Et chaque fois je me suis rendu compte que le problème venait du fait que l’événement créait plusieurs objets, qui en se superposant finissaient par devenir opaques. N’est-ce pas le cas ici ?
As-tu testé combien d’objets ont été créés ?
Si tu veux 2 objets, tu peux essayer d’ajouter une condition :
si la touche return est appuyée et le nombre de rectangles est inférieur à 2 action créer…

Ou alors tu utilises une variable :
si la touche return est appuyée et la variable bidule est égale à zéro action créer… et mettre la variable bidule à 1

Oui c’était bien sa merci !

Pour le coup j’ai un autre soucis :confused:
Je fais un dialogue avec des images tel que:

  • condition=le chrono Dial01>1seconde // action=faire +1 variable Parle01;remettre a zero chrono Dial01
  • condition=la variable Parle01=1;le nombre d’objet “DialBox01”<1 // action=créer l’objet “DialBox01” en 0,0
  • condition=la variable Parle01=2;le nombre d’objet “DialBox02”<1 // action=supprimer l’objet “DialBox01”;créer l’objet “DialBox02” en 0,0
  • condition=la variable Parle01=3;le nombre d’objet “DialBox03”<1 // action=supprimer l’objet “DialBox02”;créer l’objet “DialBox03” en 0,0
    etc…

Cette méthode marche bien, mais je au lieu d’attendre une seconde pour chaque image je voudrais faire plus court du genre 0.10 secondes.

Alors je fais:

  • condition=le chrono Dial01>0.10 secondes // action=faire +10 variable Parle01;remettre a zero chrono Dial01
  • condition=la variable Parle01=30;le nombre d’objet “DialBox01”<1 // action=créer l’objet “DialBox01” en 0,0
  • condition=la variable Parle01=60;le nombre d’objet “DialBox02”<1 // action=supprimer l’objet “DialBox01”;créer l’objet “DialBox02” en 0,0
  • condition=la variable Parle01=90;le nombre d’objet “DialBox03”<1 // action=supprimer l’objet “DialBox02”;créer l’objet “DialBox03” en 0,0
    etc…

Mais là sa ne marche pas, pourtant j’ai juste changé le tempo, logiquement sa devrais fonctionner !

Qu’est ce que tu obtiens, et qu’est ce qui ne semble pas marcher ?
Tu peux utiliser le debugger ( Dernière icone en forme de coccinelle quand tu joue la scène ) pour vérifier si les variables prennent bien la valeur voulue.

Je n’obtiens rien mes images ne s’affichent pas, en utilisant je le debugger je vois bien les valeurs s’incrémenter pourtant.

Pourrais-tu mettre une copie d’écran de tes événements ?

Désolé pour le temps de réponse mais j’étais partit en formation à l’autre bout de la france.

Je récapitule mon problème je voudrais afficher une image pas seulement de seconde en seconde mais par exemple à 0.10s j’affiche l’image “1” a 0.25 secondes j’affiche l’image “2”…
En regardant les valeurs de mes variables dans le debugger je me rend compte que le logiciel ne prend pas en compte 0.10s mais 1s.

Voilà mes évènements:

En effet, en regardant ton premier évènement, on voit que la condition “Dial01 supérieur à 1 seconde” devra aussi être remplie avant de remettre à zéro l’autre chronomètre. Il faut sans doute séparer cet évènement en deux bien distincts.

Ok merci c’était tout bête en fait j’aurais du le voir par moi même ! J’étais bloqué par ça et du coup j’ai beaucoup avancé ! Merci !