2011-01-26 2 views
0

Je veux créer un objet cercle, le placer sur l'écran avec une vélocité et le faire rebondir dans les limites. Je peux très bien configurer la classe de cercle, mais comment puis-je peindre l'objet (et plusieurs plus tard, disons cliquer et vous obtenez plus d'objets de cercle) et montrer son mouvement?Comment créer un objet et le peindre pendant qu'il se déplace?

+0

Ce genre est d'une grande question avec beaucoup de sous-thèmes spécifiques. Vous voudrez peut-être diviser votre question en questions distinctes plus ciblées. – asawyer

+0

Utilisez-vous WinForms, APS, WPF ou Silverlight? –

+0

Ceci est avec WinForms. – akd

Répondre

2

Le dessin peut être réalisé d'au moins 3 manières différentes dans les frameworks .NET (WFA, WPF et XNA). Pour cette réponse, je suppose que vous utilisez le plus simple: une application WinForms.

Dessiner/peindre des formes personnalisées dans .NET est accompli en utilisant la classe Graphics. Tous les contrôles de formulaire ont une méthode CreateGraphics(), qui vous donne une référence à une "boîte" sur l'écran avec la taille et l'emplacement du contrôle sur lequel vous avez appelé la méthode. En utilisant cette instance Graphics, vous pouvez appeler différentes méthodes Draw (comme DrawCircle()) pour mettre des formes à l'écran. Vous aurez besoin de lire sur les objets Pen, Brush et Color; ils vous permettent de définir la bordure, le remplissage et la couleur de votre cercle. Je placerais la logique de dessin dans la méthode OnPaint() du contrôle, qui est appelée chaque fois qu'on demande à la fenêtre de se redessiner. Pour que votre objet se déplace à intervalles réguliers, configurez un Timer avec un intervalle régulier et abonnez-vous à son événement Tick avec un gestionnaire qui exécutera la logique de déplacement. Après avoir effectué chaque déplacement, appelez le Invalidate() sur le contrôle pour lequel vous avez traité le Graphics; cela entraînera le contrôle à se redessiner. J'éviterais d'avoir le handle graphique pour un formulaire entier, ou n'importe quel contrôle sur lequel vous placez d'autres contrôles imbriqués, car un contrôle qui se repeindrait lui-même dira également à tous ses contrôles imbriqués de se repeindre. Un Panel ou PictureBox occupant un span dans la fenêtre de formulaire est la méthode de référence pour les graphiques personnalisés. Vous pouvez également envisager d'implémenter des graphiques à double tampon à l'aide d'un objet BufferedGraphicsContext ou de lancer le vôtre en dessinant vos formes personnalisées sur un Bitmap que vous définissez comme image pour un PictureBox.

3

Démarrer avec la méthode OnPaint prioritaire sur le formulaire et ajouter une logique de tirage il

protected override void OnPaint(PaintEventArgs e) 
{ 
    e.Graphics.DrawEllipse(new Pen(Color.Red), 0, 0, 100, 100); 
} 
Questions connexes