Objekte mit zufälligen Timern bewegen
Ihr Ziel ist es, sich bewegende Objekte zu erstellen, die zufällig am unteren Bildschirmrand erscheinen, eine bestimmte Höhe erreichen und dann absteigen. Um zu verhindern, dass alle Formen gleichzeitig starten, müssen Sie für jedes Objekt individuelle Timer implementieren.
Der unten bereitgestellte Ansatz verwendet eine Shape-Klasse, die die Eigenschaften jedes Objekts, einschließlich seiner zufälligen Anfangsverzögerung, kapselt. Im Aktions-Listener des Timers werden die Shape-Methoden aufgerufen, um die Bewegung, die Verzögerungsreduzierung und das Zeichnen zu verwalten.
<code class="java">import java.awt.event.ActionListener; import java.util.List; import java.util.Random; class Shape { // Object properties int x; int y; boolean draw; int randomDelay; // Delay before the object starts moving public Shape(int x, int randomDelay) { this.x = x; this.y = 0; // Start at the bottom of the screen this.draw = false; this.randomDelay = randomDelay; } // Object movement logic public void move() { if (draw) { y++; // Move up or down based on the current state } } // Decrease the delay public void decreaseDelay() { randomDelay--; if (randomDelay <= 0) { draw = true; // Start drawing the object once the delay reaches zero } } // Draw the object public void draw(Graphics g) { if (draw) { // Draw the shape on the screen } } }
Dieser Ansatz stellt sicher, dass jede Form ihre eigene einzigartige zufällige Verzögerung hat und verhindert, dass sie ihre Bewegung startet gleichzeitig.
<code class="java">// Create a list of Shape objects with random delays List<Shape> shapes = new ArrayList<>(); for (int i = 0; i < 10; i++) { Random random = new Random(); int randomXLoc = random.nextInt(width); int randomDelay = random.nextInt(500); // Set a random delay between 0 and 499 milliseconds shapes.add(new Shape(randomXLoc, randomDelay)); } // Initialize a timer and specify the action listener Timer timer = new Timer(10, new ActionListener() { @Override public void actionPerformed(ActionEvent e) { for (Shape shape : shapes) { shape.move(); shape.decreaseDelay(); shape.draw(g); // Draw the shape if allowed } } }); // Start the timer timer.start();</code>
Das obige ist der detaillierte Inhalt vonWie erstelle ich zufällig bewegte Objekte mit individuellen Timern in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!