Processing提供了一個叫mousePressed()的函數和一個叫mousePressed的變量,用於監聽鼠標按鈕是否被按下,但兩者的工作機制是不同的。
1. mousePressed變量:
當任何鼠標按鈕
被按下時,該值為
true,如果
沒有按鈕被按下(或被釋放后),則為
false。它存儲並利用了鼠標的狀態。

2. mousePressed()函數:
此函數在每次鼠標按鈕被按下后被調用。當一個按鈕被按下時,函數中的代碼只運行一次。“鼠標按鈕被按下”這個狀態是用來觸發一個動作的。

3. mouseClicked()函數:
在鼠標按鈕
被按下並釋放后被調用。
4.
mouseMoved():
函數在每次鼠標
移動而鼠標按鈕
未被按下時被調用。
5.
mouseDragged()函數:
鼠標拖動()函數在鼠標按鈕
被按下時,每次鼠標
移動時都會被調用一次。
函數內的代碼是在
鼠標輪移動時運行的(有些鼠標沒有滾輪,這個函數只適用於有滾輪的鼠標)。mouseWheel()中使用的getCount()函數在鼠標滾輪向下(朝向用戶)旋轉時返回正值,而另一個方向(向上或遠離用戶)則返回負值。在OS X上,如果啟用了“natural”滾動模式,則返回的值是相反的。
7. mouseReleased()函數:
與mousePressed()相反。
補充:
1. mouseButton變量可以用來確定哪個按鈕被按下。它的值包含 LEFT, CENTER, or RIGHT, 取決於最近一次按下的鼠標按鈕(mouseButton變量保留其值直到按下另一個按鈕)
2. keyPressed、keyPressed()和keyReleased()與mousePressed、mousePressed()和mouseReleased()的工作機制和關系基本相同。
1. mouseButton變量可以用來確定哪個按鈕被按下。它的值包含 LEFT, CENTER, or RIGHT, 取決於最近一次按下的鼠標按鈕(mouseButton變量保留其值直到按下另一個按鈕)
2. keyPressed、keyPressed()和keyReleased()與mousePressed、mousePressed()和mouseReleased()的工作機制和關系基本相同。
3. 鼠標和鍵盤事件只有在程序有draw()時才會工作。如果沒有draw(),代碼只運行一次,然后停止監聽事件。
-----------------------------------------------------------------------
Reference:
1. https://processing.org/reference/libraries/
2. 一個很好的鼠標動畫示例:https://processing.org/examples/mousefunctions.html