Java 如何在对象类中绘制图形时设置计时器

Java 如何在对象类中绘制图形时设置计时器,java,timer,Java,Timer,首先,对不起我的语法。我需要创建炸弹对象并绘制黑色,5秒后它将绘制为红色,而不会冻结我的游戏,我尝试制作轰炸机人游戏。谢谢 import java.awt.*; public class Bomb { int x,y; int block = 60; public Bomb(int x,int y) { this.x = x; this.y = y; } void draw(Graphics g) { g.s

首先,对不起我的语法。我需要创建炸弹对象并绘制黑色,5秒后它将绘制为红色,而不会冻结我的游戏,我尝试制作轰炸机人游戏。谢谢

import java.awt.*;
public class Bomb {
    int x,y;
    int block = 60;
    public Bomb(int x,int y) {
        this.x = x;
        this.y = y;
    }
    void draw(Graphics g) {
        g.setColor(Color.BLACK);
        g.fillOval(this.x * block, this.y * block, block, block);
        if ( /*TIMER == 0*/) {
            g.setColor(Color.RED);
            g.fillOval(this.x * block, this.y * block, block, block);
        }
    }
}

你需要做的不仅仅是改变炸弹的颜色。你的游戏需要跟踪炸弹的状态。因此,您需要在不同的类中创建计时器,并让计时器的动作侦听器更改Bomb类用于确定其绘制方式的Bomb属性:

public class Bomb {
    boolean expired;

    // ...

    void draw(Graphics g) {
        g.setColor(expired ? Color.RED : Color.BLACK);
        g.fillOval(this.x * block, this.y * block, block, block);
    }
}
任何控制游戏逻辑的类都需要在创建炸弹时创建:

Bomb bomb = new Bomb(x, y);
Timer timer = new Timer(10_000, e -> {
    bomb.expired = true;
});
timer.setRepeats(false);
timer.start();

使用@VGR我不知道如何与我的代码结合,有什么建议吗?