Heim  >  Artikel  >  Java  >  Wie erstelle ich zufällig bewegte Objekte mit individuellen Timern in Java?

Wie erstelle ich zufällig bewegte Objekte mit individuellen Timern in Java?

Barbara Streisand
Barbara StreisandOriginal
2024-10-29 16:32:02304Durchsuche

 How to Create Randomly Moving Objects with Individual Timers in Java?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn