Ich bau mir gerade ein galgenmännchen Spiel zusammen, habe aber das problem, das die gezeichneten Linien wieder verschwinden nachdem ich Invalidate() aufrufe.
So sieht meine Paint Sub aus:
Mit fehlversuchen ist gemeint wenn der Spieler einen Falschen Buchstaben gewählt hat, wird Fehlversuche += 1 gemacht.
Das Problem ist, wenn Fhlversuche = 2 oder Höher ist, dann werden die Vorigen Linien gelöscht und nur eine Der Linien wird neu gezeichnet.
Frage: Wie bekomme ich es hin, das alle vorherigen Linien auch wieder gezeichnet werden, bzw. gar nicht gelöscht werden.
Und das hier ist mein Button der den eingegebenen Buchstaben überprüft:
So sieht meine Paint Sub aus:
Mit fehlversuchen ist gemeint wenn der Spieler einen Falschen Buchstaben gewählt hat, wird Fehlversuche += 1 gemacht.
Das Problem ist, wenn Fhlversuche = 2 oder Höher ist, dann werden die Vorigen Linien gelöscht und nur eine Der Linien wird neu gezeichnet.
Frage: Wie bekomme ich es hin, das alle vorherigen Linien auch wieder gezeichnet werden, bzw. gar nicht gelöscht werden.
VB.NET-Quellcode
- Private Sub Galgenbox_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Galgenbox.Paint
- Dim g As Graphics = e.Graphics
- Dim b As Pen = New Pen(Brushes.Black, 5)
- If start Then
- Select Case FehlVersuche
- Case 1 : g.DrawLine(b, 25, 150, 175, 150) 'Boden
- Case 2 : g.DrawLine(b, 75, 150, 75, 25) 'Stammfuß
- Case 3 : g.DrawLine(b, 73, 25, 150, 25) 'Balken
- Case 4 : g.DrawLine(b, 75, 50, 100, 25) 'Querstütze
- Case 5 : g.DrawLine(b, 150, 23, 150, 50) 'Seil
- Case 6 : g.DrawEllipse(b, 140, 50, 20, 20) 'Kopf
- Case 7 : g.DrawLine(b, 150, 70, 150, 100) 'Rumpf
- Case 8 : g.DrawLine(b, 150, 98, 135, 125) 'linkes Bein
- Case 9 : g.DrawLine(b, 150, 98, 165, 125) 'rechtes Bein
- Case 10 : g.DrawLine(b, 150, 90, 130, 75) 'linker Arm
- Case 11 : g.DrawLine(b, 150, 90, 170, 75) 'rechter Arm
- End Select
- End If
- End Sub
Und das hier ist mein Button der den eingegebenen Buchstaben überprüft: