Hallo liebes Forum,
ich bin neu und da ich hier als Passivnutzer viele gute Tipps bekommen habe, hoffe ich bei meiner folgenden Frage Hilfe zu bekommen
Es geht darum, dass ich ein kleines Spiel programmiere, bei dem man einen Tannenbaum schmücken kann.
Es sollen Kugeln in verschiedenen Farben und Größen in eine Picturebox per Klick eingezeichnet werden können.
Mein Problem ist, dass ich nicht weiß, wie ich jede Kugel einzeln mit seinen Eigenschaften einzeichnen kann.
Bis jetzt ist es so, dass alle alten bereits gezeichneten Kugeln mit den neuen Eigenschaften überschrieben werden
und ich dann lauter gleichaussehende Kugeln habe ...
Wie kann ich das Problem lösen?
Vielen Dank schonmal
Dazu der folgende Code:
Spoiler anzeigen
ich bin neu und da ich hier als Passivnutzer viele gute Tipps bekommen habe, hoffe ich bei meiner folgenden Frage Hilfe zu bekommen
Es geht darum, dass ich ein kleines Spiel programmiere, bei dem man einen Tannenbaum schmücken kann.
Es sollen Kugeln in verschiedenen Farben und Größen in eine Picturebox per Klick eingezeichnet werden können.
Mein Problem ist, dass ich nicht weiß, wie ich jede Kugel einzeln mit seinen Eigenschaften einzeichnen kann.
Bis jetzt ist es so, dass alle alten bereits gezeichneten Kugeln mit den neuen Eigenschaften überschrieben werden
und ich dann lauter gleichaussehende Kugeln habe ...
Wie kann ich das Problem lösen?
Vielen Dank schonmal
Dazu der folgende Code:
VB.NET-Quellcode
- Public Class Form1
- Dim punkte As New List(Of Point)
- Dim r As Integer = 10
- Dim r2 As Integer = 20
- Dim r3 As Integer = 30
- Dim rot As Boolean = False
- Dim grün As Boolean = False
- Dim blau As Boolean = False
- Dim lila As Boolean = False
- Dim gelb As Boolean = False
- Dim orange As Boolean = False
- Dim klein As Boolean = False
- Dim mittel As Boolean = False
- Dim gross As Boolean = False
- Protected x As Integer
- Protected y As Integer
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- End Sub
- Private Sub PictureBox2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox2.Click
- rot = True
- grün = False
- blau = False
- lila = False
- gelb = False
- orange = False
- End Sub
- Private Sub PictureBox3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox3.Click
- rot = False
- grün = True
- blau = False
- lila = False
- gelb = False
- orange = False
- End Sub
- Private Sub PictureBox4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox4.Click
- rot = False
- grün = False
- blau = True
- lila = False
- gelb = False
- orange = False
- End Sub
- Private Sub PictureBox5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox5.Click
- rot = False
- grün = False
- blau = False
- lila = True
- gelb = False
- orange = False
- End Sub
- Private Sub PictureBox6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox6.Click
- rot = False
- grün = False
- blau = False
- lila = False
- gelb = True
- orange = False
- End Sub
- Private Sub PictureBox7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox7.Click
- rot = False
- grün = False
- blau = False
- lila = False
- gelb = False
- orange = True
- End Sub
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- klein = True
- mittel = False
- gross = False
- End Sub
- Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
- klein = False
- mittel = True
- gross = False
- End Sub
- Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
- klein = False
- mittel = False
- gross = True
- End Sub
- Private Sub PictureBox1_MouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseClick
- 'click liefert die koordinaten nicht mit, mausclick schon - in e stecken koord des mausklicks
- x = e.X
- y = e.Y
- punkte.Add(New Point(x, y))
- PictureBox1.Invalidate()
- End Sub
- Private Sub PictureBox1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
- Dim g As Graphics = e.Graphics
- Debug.Assert(g IsNot Nothing)
- For Each i As Point In punkte
- If rot And klein Then
- g.DrawEllipse(Pens.Red, i.X, i.Y, 2 * r, 2 * r)
- g.FillEllipse(Brushes.Red, i.X, i.Y, 2 * r, 2 * r)
- End If
- If rot And mittel Then
- g.DrawEllipse(Pens.Red, i.X, i.Y, 2 * r2, 2 * r2)
- g.FillEllipse(Brushes.Red, i.X, i.Y, 2 * r2, 2 * r2)
- End If
- If rot And gross Then
- g.DrawEllipse(Pens.Red, i.X, i.Y, 2 * r3, 2 * r3)
- g.FillEllipse(Brushes.Red, i.X, i.Y, 2 * r3, 2 * r3)
- End If
- If grün And klein Then
- g.DrawEllipse(Pens.Green, i.X, i.Y, 2 * r, 2 * r)
- g.FillEllipse(Brushes.Green, i.X, i.Y, 2 * r, 2 * r)
- End If
- If grün And mittel Then
- g.DrawEllipse(Pens.Green, i.X, i.Y, 2 * r2, 2 * r2)
- g.FillEllipse(Brushes.Green, i.X, i.Y, 2 * r2, 2 * r2)
- End If
- If grün And gross Then
- g.DrawEllipse(Pens.Green, i.X, i.Y, 2 * r3, 2 * r3)
- g.FillEllipse(Brushes.Green, i.X, i.Y, 2 * r3, 2 * r3)
- End If
- If blau And klein Then
- g.DrawEllipse(Pens.Blue, i.X, i.Y, 2 * r, 2 * r)
- g.FillEllipse(Brushes.Blue, i.X, i.Y, 2 * r, 2 * r)
- End If
- If blau And mittel Then
- g.DrawEllipse(Pens.Blue, i.X, i.Y, 2 * r2, 2 * r2)
- g.FillEllipse(Brushes.Blue, i.X, i.Y, 2 * r2, 2 * r2)
- End If
- If blau And gross Then
- g.DrawEllipse(Pens.Blue, i.X, i.Y, 2 * r3, 2 * r3)
- g.FillEllipse(Brushes.Blue, i.X, i.Y, 2 * r3, 2 * r3)
- End If
- If lila And klein Then
- g.DrawEllipse(Pens.Violet, i.X, i.Y, 2 * r, 2 * r)
- g.FillEllipse(Brushes.Violet, i.X, i.Y, 2 * r, 2 * r)
- End If
- If lila And mittel Then
- g.DrawEllipse(Pens.Violet, i.X, i.Y, 2 * r2, 2 * r2)
- g.FillEllipse(Brushes.Violet, i.X, i.Y, 2 * r2, 2 * r2)
- End If
- If lila And gross Then
- g.DrawEllipse(Pens.Violet, i.X, i.Y, 2 * r3, 2 * r3)
- g.FillEllipse(Brushes.Violet, i.X, i.Y, 2 * r3, 2 * r3)
- End If
- If gelb And klein Then
- g.DrawEllipse(Pens.Yellow, x, x, 2 * r, 2 * r)
- g.FillEllipse(Brushes.Yellow, x, x, 2 * r, 2 * r)
- End If
- If gelb And mittel Then
- g.DrawEllipse(Pens.Yellow, i.X, i.Y, 2 * r2, 2 * r2)
- g.FillEllipse(Brushes.Yellow, i.X, i.Y, 2 * r2, 2 * r2)
- End If
- If gelb And gross Then
- g.DrawEllipse(Pens.Yellow, i.X, i.Y, 2 * r3, 2 * r3)
- g.FillEllipse(Brushes.Yellow, i.X, i.Y, 2 * r3, 2 * r3)
- End If
- If orange And klein Then
- g.DrawEllipse(Pens.Orange, x, x, 2 * r, 2 * r)
- g.FillEllipse(Brushes.Orange, x, x, 2 * r, 2 * r)
- End If
- If orange And mittel Then
- g.DrawEllipse(Pens.Orange, i.X, i.Y, 2 * r2, 2 * r2)
- g.FillEllipse(Brushes.Orange, i.X, i.Y, 2 * r2, 2 * r2)
- End If
- If orange And gross Then
- g.DrawEllipse(Pens.Orange, i.X, i.Y, 2 * r3, 2 * r3)
- g.FillEllipse(Brushes.Orange, i.X, i.Y, 2 * r3, 2 * r3)
- End If
- Next i
- End Sub
- '**********************************************************
- '********************** Menü-Befehle **********************
- '**********************************************************
- Private Sub Baum1ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Baum1ToolStripMenuItem.Click
- PictureBox1.Image = My.Resources.baum1
- End Sub
- Private Sub Baum2ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Baum2ToolStripMenuItem.Click
- PictureBox1.Image = My.Resources.baum2
- End Sub
- Private Sub NeuesSpielToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NeuesSpielToolStripMenuItem.Click
- Form1_Load(sender, e)
- Refresh()
- PictureBox1.Invalidate()
- End Sub
- End Class
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „vacuphase“ ()