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.