怎样可以让设定的int score,每一次鼠标靠右只增加一次呢
processing吧
全部回复
仅看楼主
level 6
汀不叮 楼主
大家好,很抱歉小萌新刚刚开始学习,这习题困惑了很久,怎样可以让设定的int score,每一次鼠标靠右只增加一次呢。以下是简化的代码,谢谢大家了
int score;void setup(){
score=0;
}void draw(){
line(width*0.5,0,width*0.5,height);
if(mouseX<width||mouseX>width*0.5){
score++;
println(score);
}
}
2017年11月20日 15点11分 1
level 10
用鼠标事件啊[滑稽]
2017年11月20日 23点11分 2
level 6
Processing 的 void draw() 每秒运行60次,也就是说你目前代码里,当鼠标靠右的时候score 值会以每秒60的速度增加。
你现在想实现的是,当鼠标从左侧滑到右侧的时候,score只增加1。
那问题就变成了“如何让 score 只在跨越左右边境线的时候增加”。
写成伪码的形式是这样:
if ( 上一帧里鼠标在左侧 && 现在鼠标在右侧){
score++;
}
Processing 里的 mouseX 是当前帧鼠标位置,pmouseX 是上一帧位置,所以代码就是:
if ( pmouseX < width/2 && mouseX >= width/2){
score++;
}
2017年11月22日 07点11分 4
终于搞懂啦~谢谢!
2017年11月29日 19点11分
1