我编写的代码应该在每次矩形(通过按m键创建(与另一个矩形(敌人(相交时移除 25 点生命值(生命值(。目前,敌人在我只按一次m键后连续损失25HP,直到我在敌人身体外再次按下m键。
这是我对敌人的伤害代码。被杀后会变成白色,这就是为什么我在那里有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
变量。