ホームページ  >  記事  >  Java  >  Java で個別のタイマーを使用してランダムに移動するオブジェクトを作成する方法

Java で個別のタイマーを使用してランダムに移動するオブジェクトを作成する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-10-29 16:32:02303ブラウズ

 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。