作为标题,我想通过处理实现:
屏幕上划过经典的圆圈,然后:
第一次单击鼠标时,所有圆圈都冻结(停止移动);
第二次单击鼠标时,您将使用鼠标位置绘制一个新圆圈。
问题是:如何告诉计算机采取不同的行动?毕竟都是点击,对电脑来说都是一样的。
我正在考虑检测处理中是否已经发生了某些事情(比如第一次点击)。如果无法完成,我可以使用 javascript 来完成吗?无论如何,我想把它放在浏览器上。
有人知道吗?非常感谢你。
作为标题,我想通过处理实现:
屏幕上划过经典的圆圈,然后:
第一次单击鼠标时,所有圆圈都冻结(停止移动);
第二次单击鼠标时,您将使用鼠标位置绘制一个新圆圈。
问题是:如何告诉计算机采取不同的行动?毕竟都是点击,对电脑来说都是一样的。
我正在考虑检测处理中是否已经发生了某些事情(比如第一次点击)。如果无法完成,我可以使用 javascript 来完成吗?无论如何,我想把它放在浏览器上。
有人知道吗?非常感谢你。
我认为这主要取决于您对交互的设想。它可以像您认为合适的那样简单或复杂。
如果有帮助,这里有几个想法:
1.对不同的鼠标按钮使用不同的动作(例如,常规/左键单击生成一个新圆圈,右键单击将现有圆圈移动到所需位置):
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.使用按钮和组合键。例如 aSHIFT+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
}
不过,这作为一种交互可能不太直观。在我看来,事情越简单(尤其是对用户而言)越好。
高温高压
如果我对您的理解正确,您是在问“我如何跟踪状态”。也就是说,要知道是“冻结”还是“画圈”。
你可以用一个简单的变量来做到这一点:
boolean freezeState = false;
void mousePressed(){
if (freezeState == false){
freezeState = true;
// call method to freeze circles
else if (freezeState == true){
freezeState = false;
// call method to draw circle
}