作为标题,我想通过Processing实现的目标:
屏幕上有经典的圆圈,然后:
第一次单击鼠标时,所有圆圈都会冻结(停止移动);
第二次单击鼠标时,用鼠标位置绘制一个新圆圈。
问题是:如何告诉计算机采取不同的行动?毕竟,它们都是点击,看起来与计算机相同。
我正在考虑检测Processing中是否已经发生了某些事情(比如第一次点击)。如果无法完成,我可以使用javascript这样做吗?无论如何我想把它放在浏览器上。
有人知道吗?非常感谢你。
答案 0 :(得分:1)
我认为这主要取决于你如何设想互动。它可以是您认为合适的简单或复杂。
如果有帮助,这里有几点想法:
1.对不同的mouse buttons使用不同的操作(例如,常规/左键单击会生成一个新圆圈,右键单击会将现有圆圈移动到所需位置):
void draw(){
color bg = color(0);
if(mousePressed){
if(mouseButton == LEFT ) bg = color(192,0,0);
if(mouseButton == CENTER) bg = color(0,192,0);
if(mouseButton == RIGHT) bg = color(0,0,192);
}
background(bg);
}
2.使用按钮和组合键。例如,SHIFT+CLICK
执行单独的操作而不是默认操作:
void draw(){
color bg = color(0);//default
if(mousePressed && keyPressed && keyCode == SHIFT) bg = color(255,192,0);//shift+click
background(bg);
}
3.跟踪点击次数并使用点击次数提示不同的状态:
int numClicks = 0;
void draw(){
background(numClicks*25);
}
void mousePressed(){
numClicks++;
if(numClicks > 10) numClicks = 0;//reset after 10 'states'/different clicks
}
这虽然可能不那么直观。在我看来,更简单的事情(特别是对用户而言)越好。
HTH