Sprite transparent ??

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Flastick
Messages : 21
Inscription : mer. 06/févr./2008 1:02

Sprite transparent ??

Message 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
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

heu ! peut etre tout simplement
DisplayTransparentSprite(#Sprite, x, y)

8O

ou bien les sprites 3D
Sprite3DBlendingMode(ModeSource, ModeDestination)
Flastick
Messages : 21
Inscription : mer. 06/févr./2008 1:02

Message 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
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message 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
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Répondre