Suchergebnisse

Suchergebnisse 1-4 von insgesamt 4.

  • Benutzer-Avatarbild

    Um eine konstante Bewegung zu haben, brauchst du eine konstante Geschwindigkeit. Für diese brauchst du eine konstante Zeit. Berechne dir im Keydown/Keyup nur den aktuellen Richtungsvektor (Bewegungsrichtung) und nicht mehr. Dann nimmst du dir einen Timer (mit z.B. 10ms Intervall), ein DateTime und ein TimeSpan Objekt. Das DateTime Objekt stellt den Zeitpunkt des letzten Timeraufrufs dar, nennen wir es lastUpdate. Das TimeSpan gibt dir die vergangene Zeit seit dem letzten Timeraufruf elapsedTime …

  • Benutzer-Avatarbild

    Zitat von VB.neter0101: „Also nach dem Motto if(up) dann Y-Richtung = (+1), if(down) dann Y-Richtung = (-1), ebenso für X, passt das ?“ Ja ganz genau. Nimm dir einen Vector, das Framework hat diese Klasse übrigens bereits (System.Windows.Vector ggf. Verweis auf WindowsBase erforderlich), und addiere auf dessen X/Y-Properties jeweils +1 oder -1 je nach gedrückter Taste. Am Ende normalisierst du den Vector. Drückt man dann Up hat man [0, -1], Down [0, 1], Up&Down [0, 0], Right&Down [sqrt(2), sqrt(…

  • Benutzer-Avatarbild

    Ich hatte an so etwas gedacht: (Versteckter Text) Der Timer steht auf 10. Je schneller, desto flüssiger ist die Bewegung. Normalerweise nimmt man eine Schleife, der Timer ist aber ausreichend und nicht so CPU lastig. Ob du eine Masse brauchst um den Cursor gleichmäßig zu bewegen glaube ich nicht Für die Beschleunigung bist du zuständig.

  • Benutzer-Avatarbild

    Zitat von VB.neter0101: „Interessieren würde mich noch die Schleifen Implementierung“ Das könnte z.B. so aussehen: (Versteckter Text) Wobei das Zeichnen bzw. der Invalidate() Aufruf eher suboptimal ist. Zum Probieren reichts aber allemal.