首先,对不起我的语法。我需要创建炸弹对象并涂成黑色,然后在5秒钟后将其涂成红色而不冻结我的游戏,我尝试制作Bomber Man游戏。谢谢
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);
}
}
}
问题来源:Stack Overflow
您不仅需要更改Bomb对象的颜色,还需要做更多的事情。您的游戏需要跟踪炸弹的状态。因此,您需要在其他类中创建一个Timer,并让Timer的动作侦听器更改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);
}
}
无论什么类控制游戏的逻辑,每当创建炸弹时都需要创建一个Timer:
Bomb bomb = new Bomb(x, y);
Timer timer = new Timer(10_000, e -> {
bomb.expired = true;
});
timer.setRepeats(false);
timer.start();
回答来源:Stack Overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。