每次按下一个键时,action/variable 更改只会发生一次
Making a action/variable change only happen once, everytime a key is pressed
我编写的代码应该在每次矩形(通过按 m 键创建)与另一个矩形(敌人)相交时移除 25 HP(生命值)。目前,在我只按一次m键后,敌人连续失去25HP,直到我在敌人外再次按m键body。
这是我对敌人的伤害代码。它被杀死时会变成白色,这就是为什么我在那里有 df1
等。
void damage() {
//if (callMethod) {
HP -=25;
//callMethod = false;
System.out.println(" " + HP);
//}
if (HP == 0) {
df1 = 200;
df2 = 200;
df3 = 200;
}
}
这是 m 输入的代码。
void Fight() {
if (keyPressed) {
if (key == 'm'|| key == 'M') {
//villkor, flytta höger, X-led.
fill(255, 0, 0, 63);
noStroke();
rect(xF, yF, wF, hF);
xFF = xF;
yFF = yF;
wFF = wF;
hFF = hF;
}
}
}
这是我的相交代码:
if (g.intersect(f)) {
f.damage();
}
如果能得到任何帮助,我将不胜感激。为我糟糕的英语语法道歉:)
您可以使用另一个 boolean
变量来跟踪操作是否已经执行。
这是一个小例子:
boolean alreadyPressed = false;
void draw() {}
void mousePressed() {
if(!alreadyPressed){
background(random(255));
}
alreadyPressed = true;
}
然后,只要您希望有资格再次检测事件,就可以重置 boolean
变量。
我编写的代码应该在每次矩形(通过按 m 键创建)与另一个矩形(敌人)相交时移除 25 HP(生命值)。目前,在我只按一次m键后,敌人连续失去25HP,直到我在敌人外再次按m键body。
这是我对敌人的伤害代码。它被杀死时会变成白色,这就是为什么我在那里有 df1
等。
void damage() {
//if (callMethod) {
HP -=25;
//callMethod = false;
System.out.println(" " + HP);
//}
if (HP == 0) {
df1 = 200;
df2 = 200;
df3 = 200;
}
}
这是 m 输入的代码。
void Fight() {
if (keyPressed) {
if (key == 'm'|| key == 'M') {
//villkor, flytta höger, X-led.
fill(255, 0, 0, 63);
noStroke();
rect(xF, yF, wF, hF);
xFF = xF;
yFF = yF;
wFF = wF;
hFF = hF;
}
}
}
这是我的相交代码:
if (g.intersect(f)) {
f.damage();
}
如果能得到任何帮助,我将不胜感激。为我糟糕的英语语法道歉:)
您可以使用另一个 boolean
变量来跟踪操作是否已经执行。
这是一个小例子:
boolean alreadyPressed = false;
void draw() {}
void mousePressed() {
if(!alreadyPressed){
background(random(255));
}
alreadyPressed = true;
}
然后,只要您希望有资格再次检测事件,就可以重置 boolean
变量。