Mehrere Punkte mit einem Graphics befehl erzeugen
-
ICh will eine Art Paintballprogramm schreiben.
Das habe ich mir so gedacht, wenn der Anwender die Like Maustaste klickt soll auf der Mausposition ein roter Punkt erscheinen. Das habe ich so ziemlich gescafft. Nur bei mir verschwindet der Punkt dauernd.Mein Code
private void Form1_MouseClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { Point Maus = PointToClient(MousePosition); Graphics g = this.CreateGraphics(); g.FillEllipse(new SolidBrush(Color.Red),Maus.X,Maus.Y , 10, 10); } }
Aber wie kann ich nun mehrere solche Punkte machen? Alle Punkte sollen bestehen bleiben wenn man einen anderen Punkt zeichnet.
mfg Wandernder Mongole
-
Nicht ständig CreateGraphics aufrufen...
-
Ich habe irgendwo gelesen, dass man das mit CCreateGraphics macht.. deswegen habe ich das dann auch gemacht...und ohne dem geht es nicht....
e.Graphics..... kann ich nicht anwenden da es nicht im Paint EReigniss ist(Oder kann ich es doch? Zumindest ich habe noch nicht herausgefunden wie).mfg
-
Alternativ könntest du deine Zeichenroutine aber in den Paint Event umziehen.
-
Ja dann funktioniert bei mir das Klick-Event nicht mehr....
Ich habe versucht, das ganze mit einer Atr "Flag"(int c^^) zu machen und wenn geklickt wird ist c 1 und wenn c =1 dann wird gezeichnet, aber dann wird der Punkt immer durch den neuen ersetzt.Deswegen habe ich versucht das ganze extern im ClickEvent zu machen.
mfg
-
Achso, wenn du einfach viele dieser Punkte zeichnen willst und diese immer weiter bestehen bleiben sollen, dann könntest du dir ein Backbuffer erstellen da rein zeichnen und den Puffer auf dein Fenster blitten.
-
Bitte kein Fachchinesisch^^
Ist das eine Eigenschaft ein Event oder muss ich den selber erstellen?
mfg Wandernder Mongole
-
Den musst du natürlich selbst erstellen.
-
Ok dann werde ich mal googeln xD
thx
mfg Mongole
-
Du könntest alternativ eine Liste List<Point> nehmen:
- im Klick-Ereignis einfach einen Punkt der Liste hinzufügen
- im Paint-Ereignis ALLE Punkte der Liste zeichnen
So kannst du dann auch schnell wieder alle Punkte bei Bedarf löschen oder sie abspeichern etc.Und zum 'Backbuffer':
Einfach ein Image verwenden und dort dann direkt den Punkt draufzeichnen und im Paint-Ereignis dann einfach das ganze Image zeichnen.
-
Ok danke hat geklapt^^
mfg