Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Im letzten Kapitel haben wir einige einfache Animationen erstellt und kennengelernt, wie man Dinge in Bewegung setzt. In diesem Teil nehmen wir die Bewegung selbst genauer unter die Lupe und fügen einigen physikalischen Eigenschaften hinzu, um unsere Animationen weiter zu verfeinern.
Wir werden einen Ball für unsere Animationsexperimente verwenden, also lassen Sie uns diesen Ball zuerst auf die Leinwand zeichnen. Der folgende Code wird uns dabei einrichten.
Wie gewohnt benötigen wir zuerst einen Zeichenkontext. Um den Ball zu zeichnen, erstellen wir ein ball Objekt, das Eigenschaften und eine draw() Methode enthält, um es auf die Leinwand zu malen.
Nichts Besonderes hier, der Ball ist eigentlich ein einfacher Kreis und wird mit Hilfe der arc() Methode gezeichnet.
Jetzt, da wir einen Ball haben, können wir, wie im letzten Kapitel dieses Tutorials gelernt, eine einfache Animation hinzufügen. Wieder hilft uns window.requestAnimationFrame() bei der Steuerung der Animation. Der Ball wird in Bewegung gesetzt, indem ein Geschwindigkeitsvektor zur Position hinzugefügt wird. Für jedes Frame löschen wir zudem die Leinwand, um alte Kreise aus vorherigen Frames zu entfernen.
Ohne eine Begrenzungskollisionstestung verlässt unser Ball schnell die Leinwände. Wir müssen prüfen, ob die x und y Position des Balls außerhalb der Leinwanddimensionen liegt und die Richtung der Geschwindigkeitsvektoren umkehren. Dazu fügen wir die folgenden Überprüfungen zur draw Methode hinzu:
Schauen wir uns an, wie es in Aktion aussieht.
Bewegen Sie Ihre Maus in das Canvas, um die Animation zu starten.
Um die Bewegung realer zu gestalten, können Sie beispielsweise folgenden Trick mit der Geschwindigkeit ausprobieren:
Dies verlangsamt die vertikale Geschwindigkeit bei jedem Frame, sodass der Ball am Ende nur noch auf dem Boden hüpft.
Bisher haben wir die clearRect Methode verwendet, um vorherige Frames zu löschen. Wenn Sie diese Methode durch ein halbtransparentes fillRect ersetzen, können Sie leicht einen Nachzieheffekt erstellen.
Um etwas Kontrolle über den Ball zu erhalten, können wir ihn z.B. unserer Maus durch das mousemove Ereignis folgen lassen. Das click Ereignis gibt den Ball frei und lässt ihn wieder hüpfen.
Bewegen Sie den Ball mit Ihrer Maus und lassen Sie ihn mit einem Klick los.
Dieses kurze Kapitel erklärt nur einige Techniken, um fortgeschrittenere Animationen zu erstellen. Es gibt noch viele weitere! Wie wäre es, ein Paddle und einige Ziegel hinzuzufügen und diese Demo in ein Breakout Spiel zu verwandeln? Schauen Sie sich unseren Spielentwicklung Bereich für weitere gamingbezogene Artikel an.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.