Bonjour,
j'aimerai créer un petit jeux 2D en c# + GDI+ et on faisons les testes préliminaires j'ai été confronté à un problème d’événement clic que je n'arrive pas à mettre a mes composants graphiques à savoir une bitmap/rectangles ...
après avoir vérifié sur google, j'ai compris qu'il faut faire ça manuellement .
j'ai aussi compris que pour réaliser cela il faut passer par 3 choses:
1-détecter le clic de la souris a l'intérieur de l'objets
2-vérifier la où la souris à cliqué correspond à une pixel coloré est non transparente de l'objet.
3-en cas de superposition de plusieurs objets l'un sur l'autre, seul l'objet visible (celui qui est sur le devant) qui dois être concerné par le clic.
pour la 1ere conclusion, j'ai ajouté l'événement MouseClick à la Form comme suit:
bon cela marche pour le rectangle grâce à la méthode Contains mais j'aimerai faire autant pour l'objet bitmap pour dessiner des images mais la méthode Contains n'est pas accessible pour l'objet Bitmap.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 private void Form1_MouseClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { if(rectangle.Contains(e.Location)) { MessageBox.Show("cliqué avec le boutton gauche"); } } else if (e.Button == MouseButtons.Right) { if(rectangle.Contains(e.Location)) { MessageBox.Show("cliqué avec le bouton droit"); } } }
ma question est donc, comment détecter le clic sur l'objet Bitmap svp.
et pour les autres étapes je vois vraiment pas comment faire
une autre question pour quelqu'un qui a expérimenter les graphismes sous gdi, est se que le faite de faire un jeu style RPG en gdi ne ralentira pas mon application en sachons qu'il aura plusieurs bitmap a dessiner + map ...
Merci beaucoup
Partager