首页 > Java > java教程 > 如何在 Java 中创建带有单独计时器的随机移动对象?

如何在 Java 中创建带有单独计时器的随机移动对象?

Barbara Streisand
发布: 2024-10-29 16:32:02
原创
337 人浏览过

 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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板