


Wie erreicht man eine gestaffelte Objektbewegung in Java: Verwendung von Timern und Verzögerungen für einen Fruit-Ninja-Effekt?
Objekte und Timer bewegen
In diesem Zusammenhang möchten Sie, dass Objekte zufällig am unteren Bildschirmrand erscheinen und bis zu einer bestimmten Höhe aufsteigen , und steigen Sie dann wieder nach unten ab, ähnlich wie im Spiel Fruit Ninja. Es tritt jedoch ein Problem auf, bei dem alle Objekte aufgrund fehlender gestaffelter Verzögerungen gleichzeitig beginnen.
Lösung:
Um dieses Problem zu lösen, können Sie Folgendes tun Verzögerungen einführen, die für jedes Objekt spezifisch sind. Nachfolgend finden Sie eine Erläuterung eines möglichen Ansatzes unter Verwendung einer Shape-Klasse mit einem ActionListener, der die Bewegung basierend auf einem abnehmenden Verzögerungszähler ausführt.
1. Formklasse mit Verzögerung und Bewegungslogik:
<code class="java">class Shape { private int randomDelayedStart; private boolean draw = false; private boolean down = false; private int y = D_HEIGHT; // Initial position at the bottom of the screen public void decreaseDelay() { if (randomDelayedStart <= 0) { draw = true; } else { randomDelayedStart -= 1; } } public void move() { if (draw) { if (y <= 50) { down = true; } if (down) { y += INCREMENT; } else { y -= INCREMENT; } } } }</code>
2. Zufällige Initialisierung für jede Form:
Beim Erstellen jedes Form-Objekts können Sie zufällig einen Verzögerungswert zuweisen:
<code class="java">for (int i = 0; i < 20; i++) { int randXLoc = random.nextInt(D_WIDTH); int randomDelayedStart = random.nextInt(100); Shape shape = new Shape(randXLoc, randomDelayedStart); list.add(shape); }</code>
3. ActionListener zum Auslösen von Formbewegungen:
In einem einzigen Timer kann ein ActionListener alle Formen durchlaufen, ihre Verzögerungszähler dekrementieren und ihre Bewegungsmethoden aufrufen :
<code class="java">ActionListener taskPerformer = new ActionListener() { public void actionPerformed(ActionEvent e) { for (Shape s : shapes) { s.decreaseDelay(); s.move(); repaint(); } } };</code>
4. Starten des Timers:
Nachdem Sie alle Formen initialisiert haben, starten Sie den Timer, um die kontinuierliche Bewegung zu starten:
<code class="java">timer.start();</code>
Dieser Ansatz ermöglicht unabhängige Verzögerungen und Bewegungen für jede Form, um dies sicherzustellen Sie erscheinen und bewegen sich versetzt und ähneln dem gewünschten Verhalten in Fruit Ninja.
Das obige ist der detaillierte Inhalt vonWie erreicht man eine gestaffelte Objektbewegung in Java: Verwendung von Timern und Verzögerungen für einen Fruit-Ninja-Effekt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Fehlerbehebung und Lösungen für die Sicherheitssoftware des Unternehmens, die dazu führt, dass einige Anwendungen nicht ordnungsgemäß funktionieren. Viele Unternehmen werden Sicherheitssoftware bereitstellen, um die interne Netzwerksicherheit zu gewährleisten. ...

Die Verarbeitung von Feldzuordnungen im Systemdocken stößt häufig auf ein schwieriges Problem bei der Durchführung von Systemdocken: So kartieren Sie die Schnittstellenfelder des Systems und ...

Bei Verwendung von MyBatis-Plus oder anderen ORM-Frameworks für Datenbankvorgänge müssen häufig Abfragebedingungen basierend auf dem Attributnamen der Entitätsklasse erstellt werden. Wenn Sie jedes Mal manuell ...

Lösungen zum Umwandeln von Namen in Zahlen zur Implementierung der Sortierung in vielen Anwendungsszenarien müssen Benutzer möglicherweise in Gruppen sortieren, insbesondere in einem ...

Beginnen Sie den Frühling mit der Intellijideaultimate -Version ...

Konvertierung von Java-Objekten und -Arrays: Eingehende Diskussion der Risiken und korrekten Methoden zur Konvertierung des Guss-Typs Viele Java-Anfänger werden auf die Umwandlung eines Objekts in ein Array stoßen ...

Detaillierte Erläuterung des Designs von SKU- und SPU-Tabellen auf E-Commerce-Plattformen In diesem Artikel werden die Datenbankdesignprobleme von SKU und SPU in E-Commerce-Plattformen erörtert, insbesondere wie man mit benutzerdefinierten Verkäufen umgeht ...

Wenn Sie TKMybatis für Datenbankabfragen verwenden, ist das Aufbau von Abfragebedingungen ein häufiges Problem. Dieser Artikel wird ...
