Page 2 sur 2

Re: [ok] roundbox(),box(),circle()... et outline

Publié : ven. 10/juil./2015 17:24
par Mesa
Vous avez de la chance que ça marche car d'après l'aide ça ne devrait pas !

Dans la rubrique DrawingMode()
Après le mode #PB_2DDrawing_Outlined, on peut lire
Note: Les modes suivants ne fonctionnent qu'avec ImageOutput() et CanvasOutput(). Ils sont ignorés pour toutes les autres sorties:
Donc tous les modes comme #PB_2DDrawing_AlphaBlend, #PB_2DDrawing_AlphaClip, #PB_2DDrawing_AlphaChannel, #PB_2DDrawing_AllChannels, etc ne devraient pas marcher avec spriteoutput ! :wink:

J'ai vérifié dans la doc anglaise, c'est la même chose.

M.

Re: [ok] roundbox(),box(),circle()... et outline

Publié : ven. 10/juil./2015 18:34
par blendman
@falsam : Mr le président, je tiens à te dire qu'il faut arrêter l'alcool :mrgreen:
Car ce n'est pas de cet alpha là dont je parlais ^^.

J'avais bien précisé (d'ailleurs, tu l'as toi-même quoté ;)) :
Ben, je confirme: si tu supprimes #PB_Sprite_AlphaBlending, tu ne peux plus utiliser la transparence (RGBA() ou la transparence d'une image png) avec ton sprite :D
Je répète pour mr le président qui dort tout au fond :mrgreen: : RGBA() et transparence d'une Image PNG (soit avec drawAlphaImage(), comme sur mon code posté).

J'avais bien vu que l'alpha d'un sprite pouvait varier (nommé intensité d'ailleurs dans DisplayTransparentSprite()) même si on enlève le flag (c'est vrai que ça c'est surprenant, mais j'imagine que c'est un autre alpha dont il s'agit), mais ça ne change rien au problème. Si on enlève ce flag, on perd la gestion de l'alpha des images avec canal Alpha (png) et des couleurs avec RGBA(). Et c'était ça que je cherchais à conserver avec le mode outlined ;).

Regarde le code que j'ai posté dans le message précédent et tu verras qu'on n'a pas du tout la transparence des image et des couleurs RGBA(), en enlevant le flag, notamment ces lignes :

Code : Tout sélectionner

DrawingMode(#PB_2DDrawing_AlphaBlend)
  DrawAlphaImage(ImageID(0),0,0)
 
  Box(50,50,50,50,RGBA(0,120,0,10)) ; devrai être transparent et ne l'est pas
  Box(110,50,50,50,RGBA(0,120,0,255)) ; pour comparer
Donc, non ton code n'est en rien magique :(, car il ne résolvait pas mon problème, en fait il l'empirait même :mrgreen: puisque je perdais la gestion de l'alpha sur les images et les couleur RGBA(). Du coup, je suis désolé, mais tu es viré mr l'ex-président :mrgreen:.

Sur mon code, on voit bien que les box() ont la même transparence alors qu'elles ne devraient pas si on utilisait le flag que tu proposais d'enlever.

Comme je le disais, la seule méthode qui fonctionne dans toutes celles qu'on m'a proposé est bien de combiner #pb_2ddrawing_alphablend|#pb_2ddrawing_outlined
Ainsi, je conserve l'alpha des images (canal alpha d'un png), des couleurs (RGBA()), et je peux mélanger outlined ou pas, etc.. Voire changer l'alpha (l'intensité ou opacité) du sprite si ça me chante (ce que je fais d'ailleurs, puisque je l'utilise en tant qu'opacité pour mon calque).

PS : au fait, ton message m'a fait bien rire :mrgreen:


@MEsa : j'avais vu ça dans l'aide, mais ça aurait été surprenant que le sprite ne gère pas l'alphablend. A mon avis, c'est lié à l'ancien système des sprites, qui a changé récemment (en 5.20, il me semble), peut-être que la doc n'a simplement pas été actualisée dans cette partie-là ;).

Re: [ok] roundbox(),box(),circle()... et outline

Publié : ven. 10/juil./2015 18:46
par falsam
blendman a écrit :je tiens à te dire qu'il faut arrêter l'alcool
C'est bien pire avec l'alcool.
blendman a écrit :Du coup, je suis désolé, mais tu es viré mr l'ex-président
L'affaire est entendu et j'accepte cette décision avec humilité.