如題,我想和處理來實現:處理:如何使鼠標點擊功能因點擊次數而異?
有在屏幕上跨越運行,那麼經典的圓圈:
第一次點擊鼠標各界凍結(停止移動);
第二次單擊鼠標時,用鼠標位置繪製一個新的圓。
問題是:如何告訴計算機採取不同的行爲?畢竟,他們都是點擊,對電腦看起來都一樣。
我正在考慮檢測處理中是否已發生某些事情(如第一次單擊)。如果無法完成,我可以使用JavaScript來做到這一點嗎?無論如何,我想把它放在瀏覽器上。
有人知道嗎?非常感謝你。
如題,我想和處理來實現:處理:如何使鼠標點擊功能因點擊次數而異?
有在屏幕上跨越運行,那麼經典的圓圈:
第一次點擊鼠標各界凍結(停止移動);
第二次單擊鼠標時,用鼠標位置繪製一個新的圓。
問題是:如何告訴計算機採取不同的行爲?畢竟,他們都是點擊,對電腦看起來都一樣。
我正在考慮檢測處理中是否已發生某些事情(如第一次單擊)。如果無法完成,我可以使用JavaScript來做到這一點嗎?無論如何,我想把它放在瀏覽器上。
有人知道嗎?非常感謝你。
我認爲這主要取決於你如何設想交互。它可以像你認爲合適的那樣簡單或複雜。
如果有幫助,這裏有幾個想法:
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
如果我理解正確的話,你問「我怎麼可以跟蹤的狀態。」也就是說,要知道是「凍結」還是「畫圈」。
你可以用一個簡單的變量做到這一點:
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
}
'if(freezeState == false){freeze_State = true; //調用凍結圓圈的方法 否則if(freezeState == true){ freezeState = false; '也可以寫成'freezeState =!freezeState' - 這是你'切換'一個布爾值的典型方式。 –
@GeorgeProfenza - 是的,謝謝。我展開了它,因爲OP目前似乎還沒有太多經驗,而詳細的方法可能更易於理解。 –
明智的決定:) –
哇再次就是你!謝謝你sooooooo了! – kikkpunk
嘿,我可以檢測處理中是否發生了某些事情(如第一次點擊)?如果沒有,我可以使用JavaScript來做到這一點?無論如何,我想把它放在瀏覽器上。 – kikkpunk
我遵循處理問題,所以我再次:)我不是什麼意思的「已經發生的事情」?如果您想跟蹤點擊次數,那麼就是上面的例子(使用'numClicks')。該代碼也適用於Processing.js。最簡單的測試方法是將該代碼片段粘貼到[Sketch.Processing](http://sketch.processing.org/)並嘗試。還有其他處理網絡「遊樂場」,如[SketchPatch](http://sketchpatch.net/),[HasCanvas](http://hascanvas.com/)或[SketchPad](http:// sketchpad)。cc /) –