Hallo,
ich bin gerade dabei von GDI (Windows Forms) auf WPF umzusteigen.
Jetzt möchte ich ein kleines "Spiel" programmieren, bei dem (erst mal) ein Kreis mit den Pfeiltasten gesteuert wird. Ideal wäre auch noch Beschleunigung.
Früher (mit GDI und Timer) habe ich das so gemacht:
Ich hatte ein Objekt mit den Eigenschaften: x, y, speedX, speedY (und vill. noch mehr)
Dieses Objekt hatte die Methoden:
Jedes mal wurde am Schluss die redraw()-Methode aufgerufen und das resultierende Bild auf eine PictureBox gelegt.
Dabei habe ich das TimerIntervall und die Übergabevariablen bei changeSpeed() so angepasst, dass die Geschwindigkeit annehmbar und die Ruckler minimal waren.
Kurze Frage:
Wie findet ihr mein Vorgehen? - alles selbst ausgedacht!
Hätte ich da (noch mit GDI) etwas verbessern können?
Jetzt aber wieder zu meiner eigentlichen Frage:
Wie soll ich das ganze ohne einen Timer machen?
Ich habe mir das Animations-Tutorial (und andere) von dieser Webcast Reihe angeschaut und habe gemerkt, dass da alles ohne einen Timer, sondern mit Animationen abläuft.
Da sich bei mir aber alles in der Laufzeit abspielt kann ich keinen vordefinierten Pfad nehmen auf dem sich der Kreis bewegt. Eine weitere Frage ist, wann ich dann die Benutzereingaben mit den Animationen syncronisiere.
Das war jetzt ganz schön viel Lesearbeit , hoffentlich kann mir der ein oder andere helfen.
Ein großes Dankeschön schonmal.
ich bin gerade dabei von GDI (Windows Forms) auf WPF umzusteigen.
Jetzt möchte ich ein kleines "Spiel" programmieren, bei dem (erst mal) ein Kreis mit den Pfeiltasten gesteuert wird. Ideal wäre auch noch Beschleunigung.
Früher (mit GDI und Timer) habe ich das so gemacht:
Ich hatte ein Objekt mit den Eigenschaften: x, y, speedX, speedY (und vill. noch mehr)
Dieses Objekt hatte die Methoden:
- changeSpeed(x,y)
hier wurde speedX und speedY verändert - doFraction()
um Reibung zu simulieren wurde hier speedX und speedY verringert - doSpeed()
hier wurde die eigentliche Bewegung ausgeführt:
x += speedX
y += speedY - redraw(bit as Bitmap)
hier wurde mit einer GDI-Grafik ein Kreis an die Position x,y auf das Bitmap gezeichnet
dieses Bitmap wurde dann zurückgegeben
Jedes mal wurde am Schluss die redraw()-Methode aufgerufen und das resultierende Bild auf eine PictureBox gelegt.
Dabei habe ich das TimerIntervall und die Übergabevariablen bei changeSpeed() so angepasst, dass die Geschwindigkeit annehmbar und die Ruckler minimal waren.
Kurze Frage:
Wie findet ihr mein Vorgehen? - alles selbst ausgedacht!
Hätte ich da (noch mit GDI) etwas verbessern können?
Jetzt aber wieder zu meiner eigentlichen Frage:
Wie soll ich das ganze ohne einen Timer machen?
Ich habe mir das Animations-Tutorial (und andere) von dieser Webcast Reihe angeschaut und habe gemerkt, dass da alles ohne einen Timer, sondern mit Animationen abläuft.
Da sich bei mir aber alles in der Laufzeit abspielt kann ich keinen vordefinierten Pfad nehmen auf dem sich der Kreis bewegt. Eine weitere Frage ist, wann ich dann die Benutzereingaben mit den Animationen syncronisiere.
Das war jetzt ganz schön viel Lesearbeit , hoffentlich kann mir der ein oder andere helfen.
Ein großes Dankeschön schonmal.