Guten Tag,
ich hätte da mal eine Frage und hoffe, dass mir jemand ein paar Tipps geben kann.
Ich schreibe momentan ein einem Spiel. Nun möchte ich, dass in bestimmten Situationen eine "Explosion" ausgelöst wird.
Die Explosion habe ich als Klasse geschrieben:
Nun wird es auch schön gezeichnet, allerdings flackert es wie sau. Nur fällt mir keine andere Möglichkeit ein, direkt im Paint-Event des Formulars zu zeichnen, da ja jede Explosion anders bezüglich ihres Instanzierungs-Zeitraumes dargestellt werden soll.
Weiß jemand Rat?
Mit freundlichen Grüßen, eXpire
ich hätte da mal eine Frage und hoffe, dass mir jemand ein paar Tipps geben kann.
Ich schreibe momentan ein einem Spiel. Nun möchte ich, dass in bestimmten Situationen eine "Explosion" ausgelöst wird.
Die Explosion habe ich als Klasse geschrieben:
VB.NET-Quellcode
- Public Class Explosion
- Private WithEvents FrameCount As Timer
- Private _ListPOINT As New List(Of Point)
- Private _IMGCOL As New List(Of Image)
- Private StartFrame As Integer = 0
- Public Sub New(ByVal x As Integer, ByVal y As Integer)
- _ListPOINT.Add(New Point(x, y))
- For i as Integer = 1 to 8 'Bilder sind von 1 bis 8 nummeriert
- _IMGCOL.Add(Image.FromFile(Application.StartupPath & "\graphics\sprites\Explode_" & CStr(i) & ".bmp", True))
- Next
- FrameCount = New Timer
- With FrameCount
- .Interval = 200
- .Start()
- End With
- End Sub
- Private Sub Draw()
- Dim g as Graphics = Form1.CreateGraphics
- g.DrawImage(_IMGCOL(StartFrame - 1), _ListPOINT(0))
- End Sub
- Private Sub FrameCount_Tick() Handles FrameCount.Tick
- If StartFrame >= 7 Then
- FrameCount.Stop()
- FrameCount.Dispose()
- End If
- StartFrame += 1
- Draw()
- End Sub
- End Class
Nun wird es auch schön gezeichnet, allerdings flackert es wie sau. Nur fällt mir keine andere Möglichkeit ein, direkt im Paint-Event des Formulars zu zeichnen, da ja jede Explosion anders bezüglich ihres Instanzierungs-Zeitraumes dargestellt werden soll.
Weiß jemand Rat?
Mit freundlichen Grüßen, eXpire
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „eXpire“ ()