AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le deal à ne pas rater :
Funko POP! Jumbo One Piece Kaido Dragon Form : où l’acheter ?
Voir le deal

 

 Dessin avancé...

Aller en bas 
4 participants
AuteurMessage
ClaudeARDILLER
Débutant



Messages : 13

Dessin avancé... Empty
MessageSujet: Dessin avancé...   Dessin avancé... EmptyDim 16 Mar 2008 - 19:19

Bonjour à tous.

Je suis actuellement à la recherche d'un spécialiste en dessin avancé, c'est à dire quelqu'un qui saurait manipuler la fonction suivante:

draw_set_blend_mode_ext(src,dest);

Afin de m'in diquer la façon d'obtenir un sprite monocolorisé et transparent. Je m'explique, mon sprite est normalement colorisé, avec une couleur transparente, et je cherche à obtenir sa silhouette (un peu comme une ombre du sprite), celle-ci pouvant avoir la couleur de mon choix, et la partie transparente étant toujours transparente.

J'ai fait plusieurs essais mais je ne suis arrivé à rien, entre tous les possibilité des différents modes (il y en a 11), et les différentes couleurs du sprite (le mien en a 10).
Ce qui nous ferait 11x11x10 possibilités soit ... euh ... beaucoup :fleche_d.

Pour l'instant, j'utilise une méthode plutot rustre, mais qui marche, je crée un double du sprite et remplace toutes les couleurs autres que noire ou transparent par du noir, grâce à la procédure récupérée lors de mon sujet précédent intitulé:
"Comment changer les couleurs d'un sprite ?", ici:

http://zone-freegames.forumactif.com/gm-problemes-niveau-moyen-f1/comment-changer-les-couleurs-d-un-sprite-t6452.htm
(J'espère qu'il n'est pas interdit de mettre des liens vers d'autres sites, si c'est la cas, je vous prie de m'en excuser.)
En attendant mieux...

Si l'un d'entre vous s'y connait suffisament, je lui serait reconnaisant de son aide.

Amicalement,
Claude.

PS: J'ai testé:
draw_sprite_ext() avec blend=c_black mais cela laisse des zones gris clair.
Revenir en haut Aller en bas
nicoulas
*Excellent utilisateur*
nicoulas


Messages : 6030
Localisation : Dordogne
Projet Actuel : Croustaface Tower Defense Dessin avancé... Panicpr9

Dessin avancé... Empty
MessageSujet: Re: Dessin avancé...   Dessin avancé... EmptyDim 16 Mar 2008 - 19:30

et avec un draw_set_color(c_black)
puis un draw_set_alpha ça le ferait pas ?
Revenir en haut Aller en bas
http://blithe.nd.free.fr/
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

Dessin avancé... Empty
MessageSujet: Re: Dessin avancé...   Dessin avancé... EmptyDim 16 Mar 2008 - 20:31

si j'ai bien compris, tu veux ton sprite en niveau de gris (+noir, tous les gris + blanc). c'est bien ça?
Il existe dans ce cas une solution.
Code:
temp=sprite_duplicate(ton_sprite)
sprite_set_alpha_from_sprite(temp,temp)
w=sprite_get_width(temp)
h=sprite_get_height(temp)
stemp=surface_create(w,h)
surface_set_target(stemp)
draw_clear(0)
draw_sprite_ext(temp,-1,0,0,1,1,0,c_white,1)
surface_reset_target()
sprite_delete(temp)
temp=sprite_create_from_surface(stemp,0,0,w,h,1,1,1,1,0,0)
surface_free(stemp)
Ton sprite niveau de gris se trouve dans temp

_________________
Dessin avancé... Control-commentTous les icones de gm utilisables sur le cbna ICI  Dessin avancé... Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
master47
Utilisateur confirmé: Rang *****
master47


Messages : 2368
Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio

Dessin avancé... Empty
MessageSujet: Re: Dessin avancé...   Dessin avancé... EmptyDim 16 Mar 2008 - 21:01

ou pas quoi...

_________________
Suivez la timeline ! The PacWars Timeline
C# .NET, Web & Sound Design.
---
Oldies: http://livegallery.lescigales.org/
Lawl :
Spoiler:
Revenir en haut Aller en bas
http://theperfectpattern.tumblr.com
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

Dessin avancé... Empty
MessageSujet: Re: Dessin avancé...   Dessin avancé... EmptyLun 17 Mar 2008 - 9:09

Argl c'est faux, je corrige :


Code:

ton_sprite=argument0;
w=sprite_get_width(ton_sprite);
h=sprite_get_height(ton_sprite);
stemp=surface_create(w,h);

surface_set_target(stemp);
draw_clear(c_white);
surface_reset_target();
temp=sprite_create_from_surface(stemp,0,0,w,h,1,0,1,1,0,0);

sprite_set_alpha_from_sprite(temp,ton_sprite);

surface_set_target(stemp);
draw_clear(0);
draw_sprite_ext(temp,-1,0,0,1,1,0,c_white,1);
surface_reset_target();
sprite_delete(temp);
temp=sprite_create_from_surface(stemp,0,0,w,h,1,1,1,1,0,0);
surface_free(stemp);
return temp;

C'est un script . tu l'appelle, exemple : sprite_gris(nom_du_sprite_normal)
et sa te sort le sprit en niveau de gris.

Ca s'utilise une seule fois (genre dans create) et comme ça :

spr_gris=nom_du_script(nom_du_sprite_normal)

spr_gris est le sprite en grayscale.

Voila un exemple :
http://lecbna.org/mad_doc/gm6/grayscale.gm6

_________________
Dessin avancé... Control-commentTous les icones de gm utilisables sur le cbna ICI  Dessin avancé... Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
ClaudeARDILLER
Débutant



Messages : 13

Dessin avancé... Empty
MessageSujet: Merci   Dessin avancé... EmptyLun 17 Mar 2008 - 11:24

Merci, à tous.
Hélas, je me suis peut-être mal exprimé, mais je ne cherche pâs à faire un sprite en niveaux de gris, mais un sprite à une seule couleur (plus la couleur transparente), un peu comme un cache.

M@d_Doc: Mrci pour le script, ça pourra surement m'être utile.
nicoulas: Merci aussi, je teste dès ce soir.
master47: Merci par ricochet ...
Revenir en haut Aller en bas
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

Dessin avancé... Empty
MessageSujet: Re: Dessin avancé...   Dessin avancé... EmptyLun 17 Mar 2008 - 11:42

ok, pas de problème :

Code:
ton_sprite=argument0;
w=sprite_get_width(ton_sprite);
h=sprite_get_height(ton_sprite);
stemp=surface_create(w,h);

surface_set_target(stemp);
draw_clear(0);
draw_sprite_ext(temp,-1,0,0,1,1,0,c_white,1);
surface_reset_target();

temp=sprite_create_from_surface(stemp,0,0,w,h,1,1,0,1,0,0);
surface_free(stemp);
return temp;

pareil, tu rentre le sprite, ca te sort un sprite transparent uniquement blanc, donc en utilisant image_blend, tu peux lui donner la couleur que tu veux...

EDIT
Finalement ca marche pas.
J'ai la solution théorique, mais on dirait que le blend mode marche pas dans les surfaces.

_________________
Dessin avancé... Control-commentTous les icones de gm utilisables sur le cbna ICI  Dessin avancé... Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
ClaudeARDILLER
Débutant



Messages : 13

Dessin avancé... Empty
MessageSujet: Re: Dessin avancé...   Dessin avancé... EmptyMer 19 Mar 2008 - 11:05

Progrès dans la résolution de mon problème.
La ligne:
Code:
draw_sprite_ext(sprite_index, 0, x, y, 1, 1, 0, c_black, 1);
fonctionne (seulement pour le noir). Mes sprites avaient la case "Smooth edges" cochées, ce qui laissait apparaître des zones grises.

Je cherche toujours à coloriser cette "ombre" dans le "Draw event", sans créer un sprite supplémentaire dans le jeu...
Revenir en haut Aller en bas
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

Dessin avancé... Empty
MessageSujet: Re: Dessin avancé...   Dessin avancé... EmptyMer 19 Mar 2008 - 12:38

bon, mes derniers tests ont pas marché, mais je te donne la marche à suivre :
tu fait une surface, fond blanc, tu dessine dedans le sprite en noir, puis normalement :
Code:
draw_set_blend_mode_ext(bm_inv_dest,bm_inv_src)
draw_rectangle  //couleur : blanc

normalement dans ce blend mode, dessiner du blanc revient à faire apparaitre l'inverse de l'image qu'il y avait avant...

Après,tu enregistre ca dans un nouveau sprite, qui sera donc blanc sur fond noir.
Tu t'en sers, et le blend du sprite définira sa couleur...

_________________
Dessin avancé... Control-commentTous les icones de gm utilisables sur le cbna ICI  Dessin avancé... Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
Contenu sponsorisé





Dessin avancé... Empty
MessageSujet: Re: Dessin avancé...   Dessin avancé... Empty

Revenir en haut Aller en bas
 
Dessin avancé...
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Dessin Isométrique
» dessin et 3D
» Grille de dessin
» Dessin ASCII
» Tutoriel: Comment faire un décor de vaisseau spatial (Paint)

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide confirmés-
Sauter vers: