bennyD
Messages postés3Date d'inscriptionlundi 14 mars 2005StatutMembreDernière intervention15 mai 2005
-
14 mai 2005 à 18:50
catamenia
Messages postés119Date d'inscriptionmercredi 15 octobre 2003StatutMembreDernière intervention21 juillet 2009
-
2 mars 2006 à 20:18
Bonjour cela fait des jours que je travaille sur un jeu de puzzle.
Mais j ai un probleme.
J aimerai mettre 2 piece l une a cote de l autre mais celle ci n etant pas carre j ai des probleme de transparence.J utilise une classe maison fait qui herite de control pour tout ce qui est click et otre gestion d event. je sais faire de la transparence mais la transparence ne semble pas s applique sur 2 image au meme niveau
Comment faire pour que 2 image s entrelacent (la piece male dans la piece femelle souvenez vous de vos puzzle ravensberger) alors que c deux image sont au meme nivo ( dans le meme container ou fenetre)?
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 15 mai 2005 à 05:20
Ouaip pas facile..
Si j'ai bien compris, tes images sont dans un control fait maison ( un peu comme une picture box, non ? ), tu utilises la fonction Bitmap.MakeTranparent( ) ? Difficile de repondre sans voir le code.. Meme l'enumeration "ControlStyles" ne devrait pas marcher dans ton cas.. Essaye de dessiner les controls dans l'odre inverse, celui du dessus avant celui du dessous, ou de les inseres dans ta forme dans l'ordre inverse..
public static bool Inside (testcontrol sender,int X,int Y
)
{
Color backColor = sender.myBitmap. GetPixel
(1,1
);
Color pointColor = sender.myBitmap.GetPixel (sender.stade*sender.myBitmap.Width/sender.stademax+X,Y
);
return !backColor.Equals (pointColor
);
}
}
}
rien de tres particulier :)
sinon j utilise des png donc pas besoin de make transparence avec ;)
pour ce qui est de l affichage sur ma fenetre principale et bien je fais tout simplement un refresh
ne faite pas attention a maxstade ect c pour les animation :)
merci d avance
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 16 mai 2005 à 21:05
J'ai teste et j'avais le meme probleme, la solution que j'ai trouve c'est d'empecher le control de dessiner son background, pour ca tu peux redefinir sa fonction OnPaintBackground par exemple et ne rien faire dedans, mais ca ne suffisait pas, alors j'ajoute juste avant de dessiner la piece myControl.BringToFront( ) pour qu'elle soit dessinee au dessus des autres.
Fais les tests avec des bmps et remplace par les pngs si ca marche.
PS: Les coordonnees dans GetPixel c'est ( 1, 1 ) ou ( 0, 0 ) que tu voulais faire ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
catamenia
Messages postés119Date d'inscriptionmercredi 15 octobre 2003StatutMembreDernière intervention21 juillet 2009 2 mars 2006 à 19:39
donc on est obligé de créer son propre control en dérivant de picturebox?
pour redefinir la fonction on fait juste void OnPaintBackground() ou il y a des paramaitres a passer ?
catamenia
Messages postés119Date d'inscriptionmercredi 15 octobre 2003StatutMembreDernière intervention21 juillet 2009 2 mars 2006 à 20:18
j'ai testé en mettant le control sur un autre control mai la place du background sa me dessine completement autre chose( des morceaux de controls que j'ai dans mon form)