尝试每 5 秒执行一次操作
Trying to make a action get called upon once every 5 seconds
我正在尝试制作一个 class 调用计时器。当我的角色进入敌人区域时,计时器 class 应该被调用。计时器 class 应该每 5 秒将角色的生命值减少 10 点。我尝试了多个不同的计时器,但我似乎无法正确使用它们中的任何一个。当我尝试它删除健康但它并没有只做一次,它一直重复它直到健康栏不在屏幕上。这是我的代码:
class Timer {
g = new gubbe();
gubbe g;
Timer timer = new Timer(3000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
g.RemoveHealth();
}
});
timer.setRepeats(false);
timer.start();
}
这就是我到目前为止的想法。
如果需要更多代码,请询问。
这里有一个 class,您可以用它来为您的活动计时:
class Delay {
protected int limit;
public Delay() {limit = millis();}
public Delay (int l) {
limit = millis() + l;
}
public boolean expired () {
if (millis() > limit) { return true; }
return false;
}
}
要每 5 秒检查一次,您必须像这样初始化它:
Delay _delay;
void setup() {
_delay = new Delay(5000);
}
void draw() {
if (_delay.expired()) {
//do something
_delay = new Delay(5000);
}
}
5000是以毫秒为单位的,所以就是5秒。如果您想检查 1 秒的延迟,则改为 1000。我们在延迟完成后重新初始化它,以便它在 5 秒后再次触发。
玩得开心!
我正在尝试制作一个 class 调用计时器。当我的角色进入敌人区域时,计时器 class 应该被调用。计时器 class 应该每 5 秒将角色的生命值减少 10 点。我尝试了多个不同的计时器,但我似乎无法正确使用它们中的任何一个。当我尝试它删除健康但它并没有只做一次,它一直重复它直到健康栏不在屏幕上。这是我的代码:
class Timer {
g = new gubbe();
gubbe g;
Timer timer = new Timer(3000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
g.RemoveHealth();
}
});
timer.setRepeats(false);
timer.start();
}
这就是我到目前为止的想法。 如果需要更多代码,请询问。
这里有一个 class,您可以用它来为您的活动计时:
class Delay {
protected int limit;
public Delay() {limit = millis();}
public Delay (int l) {
limit = millis() + l;
}
public boolean expired () {
if (millis() > limit) { return true; }
return false;
}
}
要每 5 秒检查一次,您必须像这样初始化它:
Delay _delay;
void setup() {
_delay = new Delay(5000);
}
void draw() {
if (_delay.expired()) {
//do something
_delay = new Delay(5000);
}
}
5000是以毫秒为单位的,所以就是5秒。如果您想检查 1 秒的延迟,则改为 1000。我们在延迟完成后重新初始化它,以便它在 5 秒后再次触发。
玩得开心!