Page 1 sur 1

Sprite transparent ??

Publié : mer. 28/janv./2009 0:55
par Flastick
Bonsoir !

Voilà je souhaite faire un rectangle arrondi dans un sprite qui fera office de composant "Frame").

Je vois ces solutions-là

1) je remplis l'intérieur de ma frame (et l'extérieur) de blanc, je dis que blanc est transparent et j'affiche mon sprite avec displaytransparentsprite, mais c'est lent !!

2)Je mémorise dans un tabeau tous les pixel de mon sprite qui sont transparents, et avant d'afficher le sprite je vais les changer en leur appliquant la couleur actuelle de l'écran

3) Comme 2) mais en utilisant 4 petits sprites pour chaque bords, comme ça il y a moins de pixel transparents.

4) .. ?

En gros, quelle est la meilleure solution pour afficher un sprite avec transparence ??

Je vous remercie d'avance pour votre aide,

Flavien

Publié : mer. 28/janv./2009 1:07
par Backup
heu ! peut etre tout simplement
DisplayTransparentSprite(#Sprite, x, y)

8O

ou bien les sprites 3D
Sprite3DBlendingMode(ModeSource, ModeDestination)

Publié : mer. 28/janv./2009 13:07
par Flastick
Ah ok, il n'y a pas d'autres astuces. Mais DisplayTransparentSprite me semblait drôlement lente. Mais je vais faire avec !

Merci et à bientôt,


Flavien

Publié : mer. 28/janv./2009 16:07
par Le Soldat Inconnu
pour un fonctionnement plus rapide, il faut passé par
DisplaySprite3D(

cela implique de charger un sprite en 3D
Et pour la transparence, et bien tu peux passer par des PNG avec couche alpha (sinon, c'est le noir qui est transparent par défaut, mais on peut changer)
je te parle de couche alpha car c'est super joli et ce sera 10 fois plus rapide qu'un displaytransparentsprite(

voir ici pour un exemple de code avec des sprites 3D
http://www.purebasic.fr/french/viewtopic.php?t=8735