Mouse.move()
描述
移動電腦上的滑鼠游標。在螢幕上,滑鼠游標的移動距離是一個相對值(即上一個位置與目前位置的距離)。在呼叫 Mouse.move()
函式之前,要先呼叫 Mouse.begin() 函式。
注意:當你呼叫 Mouse.move()
函式後,86Duino 會接管你的滑鼠游標,使它做出移動的行為(使用此函式前,請確認實體滑鼠運作是沒問題的)。 建議你可以在程式中,判斷一個外接按鈕是否按下,來決定是否送出移動 86Duino 滑鼠的命令。
語法
Mouse.move(xVal, yPos, wheel);
參數
xVal
:沿著 X 軸移動的距離 – signed char 型別
yVal
:沿著 Y 軸移動的距離 – signed char 型別
wheel
:滾輪移動的距離 – signed char 型別
回傳
無回傳值
範例
const int xAxis = A1; // 類比感測器1,讀值用來計算沿著 X 軸移動的距離 const int yAxis = A2; // 類比感測器2,讀值用來計算沿著 Y 軸移動的距離 int range = 12; // XY方向上的移動範圍 int responseDelay = 2; // 滑鼠的響應時間(單位:毫秒) int threshold = range/4; // 偵測是否移動的門檻值 int center = range/2; // 範圍的中間值 int minima[] = {1023, 1023}; // 儲存 x, y 軸上由 analogRead() 所讀到的最小值 int maxima[] = {0,0}; // 儲存 x, y 軸上由 analogRead() 所讀到的最大值 int axis[] = {xAxis, yAxis}; // 在 x, y 軸上所使用的腳位 int mouseReading[2]; // 滑鼠的 x, y 座標 void setup() { Mouse.begin(); } void loop() { // 讀取 x 和 y 軸的範圍 int xReading = readAxis(0); int yReading = readAxis(1); // 移動滑鼠 Mouse.move(xReading, yReading, 0); delay(responseDelay); } int readAxis(int axisNumber) { int distance = 0; // 滑鼠的移動距離 // 讀取類比輸入 int reading = analogRead(axis[axisNumber]); // 假如目前的讀值超過軸的最大或最小值 // 則重新設定最大最小值 if (reading < minima[axisNumber]) { minima[axisNumber] = reading; } if (reading > maxima[axisNumber]) { maxima[axisNumber] = reading; } // 將讀值重新映射 reading = map(reading, minima[axisNumber], maxima[axisNumber], 0, range); // 假如輸出讀值已經超過移動的門檻值 // 則計算距離中心點的長度: if (abs(reading - center) > threshold) { distance = (reading - center); } // 為了能正確的映射出移動距離,Y 軸的值需要乘上 -1 if (axisNumber == 1) { distance = -distance; } // 回傳該軸的移動距離 return distance; }
See also
- Mouse.begin()
- Mouse.click()
- Mouse.end()
- Mouse.press()
- Mouse.release()
- Mouse.isPressed()
The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.