jihednond
Messages postés143Date d'inscriptionjeudi 27 mars 2008StatutMembreDernière intervention 3 septembre 2011
-
9 nov. 2010 à 21:38
jihednond
Messages postés143Date d'inscriptionjeudi 27 mars 2008StatutMembreDernière intervention 3 septembre 2011
-
10 nov. 2010 à 19:51
bonjour,
je suis au cour de création d' un jeux RPG 2D basé sur Mysql bon mon problème consiste a ajouter des évènement a des "PictureBox" un menu de chat PM
1 fonction de mise ajour des joueur sur la carte (en ajoute un pictureBox pour chaque joueur dans le jeux)
public void displayPlayers()
{
MySqlConnection connection = new MySqlConnection(myconstring);
MySqlCommand command = connection.CreateCommand();
MySqlDataReader reader;
command.CommandText = "select * from player where id_play!="+myid+"";
connection.Open();
reader = command.ExecuteReader();
int i = 0;
while (reader.Read())
{
PictureBox pic = new PictureBox();
int x = Convert.ToInt32(reader.GetValue(3).ToString());
int y = Convert.ToInt32(reader.GetValue(4).ToString());
pic.Location = new Point(x, y);
pic.Image = Image.FromFile(@"C:\Users\jumperx\Desktop\player.png");
Players.Add(new Player(reader.GetString(1),pic));
this.Controls.Add(pic);
i++;
}
}
Class Player
namespace Pkw_01
{
class Player
{
public string Username { get; private set; }
public PictureBox Picturebox { get; private set; }
public Player(string name, PictureBox picturebox)
{
Username = name;
Picturebox = picturebox;
}
}
}
comme vous avez vu en a créer des PictureBox pour chaque joueur mis dans une liste :
List Players = new List();
je ne sais pas comment ajouter des évènement pour chaque picturebox j'ai essayer de
l'écrire comme ça : private void pictureBox[i]_MouseDown(object sender,....
pour ce qui veule consulter le projet (base Mysql inclue)
basic Oline game
je cherche un développeur intéressé a développer ce type de jeux (débutant ou pro)
Skype: jihed777
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 10 nov. 2010 à 11:12
Les objets qui sont posés sur la form au moment de la conception, tu peux utilise les fonctionnalités de l'IDE pour abonner les évènements.
Pour les objets que tu crée dynamiquement, il faut faire l'abonnement pour chacun des objets. Tu peux le faire au moment de la création, par exemple juste après avoir ajouter le contrôle à la collection des contrôles de la form.
Quant à la procédure qui va traiter l'évènement, si nécessaire, une seule procédure peut être abonnée au même évènement de plusieurs contrôles. Ce n'est pas gênant. Le paramètre Sender de cette procédure contiendra justement le contrôle qui a déclenché l'évènement. Donc si tu as besoin de différencier les contrôles déclencheurs dans la procédure, tu peux te baser sur ce paramètre.
[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
Shaolyne
Messages postés155Date d'inscriptionjeudi 12 mai 2005StatutMembreDernière intervention 8 mars 20111 10 nov. 2010 à 15:22
Bien le bonjour à tous,
Je pense que Casy a tout dit. Je me permet cependant de mettre à disposition le code en relation avec l'explication.
public void displayPlayers()
{
MySqlConnection connection = new MySqlConnection(myconstring);
...
while (reader.Read())
{
PictureBox pic = new PictureBox();
...
pic.Image = Image.FromFile(@"C:\Users\jumperx\Desktop\player.png");
pic.MouseDown += new EventHandler(pb_MouseDownHandler);
Players.Add(new Player(reader.GetString(1),pic));
...
}
}
private void pb_MouseDownHandler(object sender, MouseEventArgs e)
{
var currPb = sender as PictureBox;
if(currPb != null)
{
//Faire le traitement sur la pb lors de l'évènement.
}
}
Avec le code présenté ci-dessus, le handler pb_MouseDownHandler sera appelé lors de la pression d'un bouton de la souris sur quelque pictureBox que ce soit. currPb contiendra la référence de la PictureBox où l'évènement s'est produit.