首頁 > Java > java教程 > 如何在 Java 中建立具有單獨計時器的隨機移動物件?

如何在 Java 中建立具有單獨計時器的隨機移動物件?

Barbara Streisand
發布: 2024-10-29 16:32:02
原創
309 人瀏覽過

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

使用隨機計時器移動對象

您的目標是創建從屏幕底部隨機出現的移動對象,達到一定高度,並且然後下降。為了避免所有形狀同時啟動,您需要為每個物件實作單獨的計時器。

下面提供的方法利用 Shape 類別來封裝每個物件的屬性,包括其隨機初始延遲。在計時器的動作監聽器中,呼叫 Shape 方法來處理移動、延遲減少和繪製。

<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
        }
    }
}
登入後複製

這種方法確保每個形狀都有自己獨特的隨機延遲,防止它們開始移動同時。

<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>
登入後複製

以上是如何在 Java 中建立具有單獨計時器的隨機移動物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板