ClipSprite3D() ?
ClipSprite3D() ?
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 ?
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.
Code : Tout sélectionner
TransparentSpriteColor( -1 ,255,0,255 )
DisplayTransparentSprite(ID , X, Y )
@+
Cpl.Bator > Oui mais y'a pas d'effet "AlphaBlending".
Mais de toute façons j'ai réussis
(enfaite "ClipSprite3D()" ne change pas automatiquement la taille du sprite comme "ClipSprite()", il faut utiliser "ZoomSprite3D()") :
http://www.mirari.fr/ua2S
Merci !
Mais de toute façons j'ai réussis

http://www.mirari.fr/ua2S
Merci !
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()
moi ce qui me manque c'est plus un usebuffer3D()
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 !!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).

Apparemment si : http://www.purebasic.fr/english/viewtop ... c496508e0b
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...
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 ...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...
