ClipSprite3D() ?

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
deeph
Messages : 33
Inscription : lun. 20/juil./2009 11:04
Contact :

ClipSprite3D() ?

Message par deeph »

Bonjour,

J'essaie depuis quelques temps de faire un tilemapper en PureBasic. Or j'ai besoin que la couche la plus haute soit affichée avec un effet "d'AlphaBlending".

Jusqu'à présent j'utilisai la routine "DisplayTranslucentSprite()" (couplée avec "ClipSprite()"), mais elle nous force à ce que la couleur transparente soit le noir.

Je me suis donc tourné vers les sprites 3D, mais il n'existe pas de "ClipSprite3D()" (j'ai trouvé des bouts de codes censés faire ça mais il ne semble pas marcher...).

De plus je précise qu'il m'est impossible de modifier manuellement le canal alpha des images PNG qui servent au tilemapper (elle servent aussi à autre chose).

Bref, est-il possible de modifier la couleur transparente de la routine "DisplayTranslucentSprite()", ou à défaut de créer une routine "ClipSprite3D()" fonctionnelle ?
Dernière modification par deeph le lun. 20/juil./2009 20:10, modifié 1 fois.
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

Euh! Ces bouts de code fonctionnent, puisque Fluid Byte les a mis à jour. Quant au tripatouillage des couches alpha, il y a des exemples sur le forum aussi pour ça. Là je n'ai pas trop le temps de regarder; juste pour dire que c'est faisable.
deeph
Messages : 33
Inscription : lun. 20/juil./2009 11:04
Contact :

Message par deeph »

:D ok alors c'est moi qui ai foiré mes tests. Je vais re-essayer ça tout de suite.

Sinon, c'est plus rapide d'utiliser les images, les sprites ou les sprites3D en général ?
Anonyme

Message par Anonyme »

Code : Tout sélectionner

TransparentSpriteColor( -1 ,255,0,255 )
DisplayTransparentSprite(ID , X, Y )
Tout les sprites aurons la couleur $FF00FF (mauve) transparente.

@+
deeph
Messages : 33
Inscription : lun. 20/juil./2009 11:04
Contact :

Message par deeph »

Cpl.Bator > Oui mais y'a pas d'effet "AlphaBlending".

Mais de toute façons j'ai réussis :D (enfaite "ClipSprite3D()" ne change pas automatiquement la taille du sprite comme "ClipSprite()", il faut utiliser "ZoomSprite3D()") :

http://www.mirari.fr/ua2S

Merci !
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

beauregard m'a trouvé ça il y a peu de temps : http://www.purebasic.fr/english/viewtop ... ipsprite3d

moi ce qui me manque c'est plus un usebuffer3D()
deeph
Messages : 33
Inscription : lun. 20/juil./2009 11:04
Contact :

Message par deeph »

C'est vrai qu'un "UseBuffer3D()" permettrait d'optimiser encore ce que je veux faire (une seule sprite3D représentant la map que j'afficherai lors du scroll, au lieu d'avoir à redessiner la portion de la map à chaque fois).
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

deeph a écrit :C'est vrai qu'un "UseBuffer3D()" permettrait d'optimiser encore ce que je veux faire (une seule sprite3D représentant la map que j'afficherai lors du scroll, au lieu d'avoir à redessiner la portion de la map à chaque fois).
Moi j'utilise les sprites 3D pour tout ! mais mon problème c'est pour faire les ombres... qui comme le UseBUGGER3D n'existe pas s'affiche aussi sur le ciel !! :( j'ai pas regardé sur les souhaits du forum anglais si la suggestion avait été faite !!
deeph
Messages : 33
Inscription : lun. 20/juil./2009 11:04
Contact :

Message par deeph »

Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

oui j'ai vu j'ai remonté le sujet ...on verra bien ...
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

Pfiou, je ne comprends rien ou presque à ce que vous demandez. Le problème de typhoon pour les ombres, c'est qu'il ne peut pas les dessiner directement sur le sprite3d, c'est ça? Mais ça ne sert à rien de procéder comme ça. Il est plus simple d'utiliser un sprite3d rien que pour les ombres, avec une couche alpha, et de l'afficher avant. Je ne vois vraiment pas où est le problème...
Et puis mettez des petits bouts de code, ce sera plus simple pour répondre quand même...
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

djes a écrit :Pfiou, je ne comprends rien ou presque à ce que vous demandez. Le problème de typhoon pour les ombres, c'est qu'il ne peut pas les dessiner directement sur le sprite3d, c'est ça? Mais ça ne sert à rien de procéder comme ça. Il est plus simple d'utiliser un sprite3d rien que pour les ombres, avec une couche alpha, et de l'afficher avant. Je ne vois vraiment pas où est le problème...
Et puis mettez des petits bouts de code, ce sera plus simple pour répondre quand même...
j'en ai parlé là car le sujet m'y a amener, mais j'ai pas encore de code pour montrer ça ne serait tarder (il y en a un mais trop lourd a coller pour une demo) .... Je vais essayer d'expliquer. J'affiche le ciel ...j'affiche des murs, j'affiche des ombres, et mon personnages... et bien l'ombre sera dessiné aussi sur le ciel lorsq u'on sort des parties ou il y a il n'y a plus de mur. or il ne faudrait pas. je pense avoir trouvé une solution mais j'aurais besoin d'un UseBuffer3d... mais bon promis je faire un sujet la dessus avec un code...mais là c'est trop tôt ... :)
Répondre