Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 每次按键时,操作/变量更改只发生一次_Java_Processing - Fatal编程技术网

Java 每次按键时,操作/变量更改只发生一次

Java 每次按键时,操作/变量更改只发生一次,java,processing,Java,Processing,我编写了一段代码,当一个矩形(按m键创建)与另一个矩形(敌人)相交时,该代码应该会移除25点生命值。目前,在我只按了一次m键之后,敌人持续释放25点生命,直到我在敌人身体外再次按m键为止 这是我对敌人的伤害代码。当它被杀死时会变成白色,这就是为什么我有df1等等 无效损坏(){ //如果(调用方法){ HP-=25; //callMethod=false; 系统输出打印项次(“+HP”); //} 如果(HP==0){ df1=200; df2=200; df3=200; } } 这是m输入的

我编写了一段代码,当一个矩形(按m键创建)与另一个矩形(敌人)相交时,该代码应该会移除25点生命值。目前,在我只按了一次m键之后,敌人持续释放25点生命,直到我在敌人身体外再次按m键为止

这是我对敌人的伤害代码。当它被杀死时会变成白色,这就是为什么我有
df1
等等

无效损坏(){
//如果(调用方法){
HP-=25;
//callMethod=false;
系统输出打印项次(“+HP”);
//}
如果(HP==0){
df1=200;
df2=200;
df3=200;
}
}
这是m输入的代码

void-Fight(){
如果(按键){
if(key='m'| | key='m'){
//维尔科,弗利塔·霍格,X-led。
填充(255,0,0,63);
仰泳();
rect(xF、yF、wF、hF);
xFF=xF;
yFF=yF;
wFF=wF;
hFF=hF;
}
}
}
这是我的密码:

if(g.intersect(f)){
f、 损害();
}

如果能得到任何帮助,我将不胜感激。为我糟糕的英语语法道歉:)

您可以使用另一个
布尔
变量跟踪操作是否已执行

下面是一个小例子:

boolean-alreadyPressed=false;
void draw(){}
void mousePressed(){
如果(!alreadyPressed){
背景(随机(255));
}
alreadyPressed=true;
}

然后,只要您想再次检测事件,就可以重置
布尔值
变量。

我尝试了您刚才描述的方法,算是成功了。结果是,只拿走25块,然后停下来。但是现在删除25后,我不能再损坏它了,因为“alreadypressed”设置为“true”。如果我试着在上面加上一个“alreadypressed=false”,它会返回到继续删除25。“你知道我是否需要mabey把它放在别的地方让它工作或者…?”Bigchung这样想:你想什么时候再开始检查按键?这时应该重置变量的值。Aaa,它现在起作用了。我把它放在“m”按下功能中。然后它成功了。thx:)