Benutzer mit den meisten Antworten
Timer läuft nicht gleichmäßig.

Frage
-
Ich wollte eine art animation machen, die eine bestimmte anzahl von PictureBoxen von unten nach Oben bewegtm, jedoch, je mehr PictureBoxen dazu kommen, desto langsamer wird das ganze. Der Prozessor ist auch fast gar nicht ausgelastet... vielleicht habt ihr ja ne andere Idee, wie ich das besser lösen kann... vielleicht ohne Pictureboxen.
Also beim tippen auf die Rechte-, Linke- oder Untere Pfeiltaste, kommt jenachdem eine Grafik.
Quellcode:
Dim pican As Int64 = 0 Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown Select Case e.KeyCode Case Keys.Right Dim nc As PictureBox = New PictureBox() nc.Image = My.Resources.bluestone nc.Location = New Point(227, 297) nc.Size = New Size(65, 20) nc.Name = "Stone" & pican Panel1.Controls.Add(nc) RichTextBox1.Text = RichTextBox1.Text & vbNewLine & "3-" & zeit pican = pican + 1 Case Keys.Left Dim nc As PictureBox = New PictureBox() nc.Image = My.Resources.redstone nc.Location = New Point(22, 297) nc.Size = New Size(65, 20) nc.Name = "Stone" & pican Panel1.Controls.Add(nc) RichTextBox1.Text = RichTextBox1.Text & vbNewLine & "1-" & zeit pican = pican + 1 Case Keys.Down Dim nc As PictureBox = New PictureBox() nc.Image = My.Resources.greenstone nc.Location = New Point(124, 297) nc.Size = New Size(65, 20) nc.Name = "Stone" & pican Panel1.Controls.Add(nc) RichTextBox1.Text = RichTextBox1.Text & vbNewLine & "2-" & zeit pican = pican + 1 End Select End Sub Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick Dim i = 0 Dim bis = Panel1.Controls.Count - 1 Do While (i <= bis) Panel1.Controls(i).Location = New Point(Panel1.Controls(i).Location.X, Panel1.Controls(i).Location.Y - 5) If Panel1.Controls(i).Location.Y < -20 Then Panel1.Controls.Remove(Panel1.Controls(i)) bis = bis - 1 i = i - 1 End If i = i + 1 Loop End Sub
Den Timer habe ich auf ein Interval von 10 Millisekunden gesetzt, damit es nicht ruckelt.
Bei ungefähr 20 Grafiken, wird die animation langsamer.
Antworten
-
Den Timer habe ich auf ein Interval von 10 Millisekunden gesetzt, damit es nicht ruckelt. Bei ungefähr 20 Grafiken, wird die animation langsamer.
Hallo M,
10ms im .NET-WinForms Umfeld und solchen Code dürfte immer schwierig sein (und auch sehr abhängig von Rechnerleistung/sonstigen Tasks).
Vor einem Monat:
http://social.msdn.microsoft.com/Forums/de-DE/wpfde/thread/937859f0-6f10-43a0-ad85-4b89e44819ae
war WPF doch noch ein Thema (?), was für solches eigentlich deutlich besser geeignet wäre...
(leider hast du damals nichts von 'Animation' gesagt, daher Antworten unter diesem Aspekt wohl nicht passend?)- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 18. Januar 2011 11:04
Alle Antworten
-
Den Timer habe ich auf ein Interval von 10 Millisekunden gesetzt, damit es nicht ruckelt. Bei ungefähr 20 Grafiken, wird die animation langsamer.
Hallo M,
10ms im .NET-WinForms Umfeld und solchen Code dürfte immer schwierig sein (und auch sehr abhängig von Rechnerleistung/sonstigen Tasks).
Vor einem Monat:
http://social.msdn.microsoft.com/Forums/de-DE/wpfde/thread/937859f0-6f10-43a0-ad85-4b89e44819ae
war WPF doch noch ein Thema (?), was für solches eigentlich deutlich besser geeignet wäre...
(leider hast du damals nichts von 'Animation' gesagt, daher Antworten unter diesem Aspekt wohl nicht passend?)- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 18. Januar 2011 11:04
-
Naja was WPF angeht, ist mir das mit den Images zu kompliziert, da das mit den Rescourcen nicht funktioniert, denn man muss die Bilder vorher irgendwo ablegen und dann den Pfad irgendwie da rein tun, also war mir das zu kompliziert und mir hat Windows Forms gereicht, aber für mein jetziges Ziel geht das wohl nur mit WPF :(
Aber trotzdem danke