Macos 处理操纵杆初学者

Macos 处理操纵杆初学者,macos,processing,joystick,Macos,Processing,Joystick,我怎样才能使鼠标像操纵杆一样移动呢。这里有一个例子,我的意思是,除了这只是移动到右边,当鼠标是所有的方式,以正确的它停止。如果鼠标位于中心,我希望圆圈停止,并移动鼠标所在的位置 您希望对照窗口中心检查鼠标位置,即宽度/2 要找到鼠标的相对位置,只需从鼠标位置减去该中心位置。这样,当鼠标位于中心左侧时,该值为负值,球将向左移动 你可能还想把球留在屏幕上 float ballX = 0; // need to keep track of the ball's current position f

我怎样才能使鼠标像操纵杆一样移动呢。这里有一个例子,我的意思是,除了这只是移动到右边,当鼠标是所有的方式,以正确的它停止。如果鼠标位于中心,我希望圆圈停止,并移动鼠标所在的位置



您希望对照窗口中心检查鼠标位置,即宽度/2

要找到鼠标的相对位置,只需从鼠标位置减去该中心位置。这样,当鼠标位于中心左侧时,该值为负值,球将向左移动

你可能还想把球留在屏幕上

float ballX = 0;  // need to keep track of the ball's current position
float ballY = 150;

void setup() {
  size(300,300); // standard size
}


void draw() {

  float centerX = width/2;
  float maxDeltaMouseX = width/2;
  float deltaMouseX = mouseX-centerX;
  float speedX = deltaMouseX/maxDeltaMouseX;

  background(200);  // dull background
  println("speed is " + speedX); // print just to check
  ballX = ballX + speedX;  // adjust position for current movement


  //keep ball on screen
  if(ballX < 0){
    ballX = 0;
  }
  else if(ballX > width){
    ballX = width;
  }

  fill(255,0,0);
  ellipse(ballX, ballY, 20,20);
}
浮球x=0;//需要跟踪球的当前位置
浮球Y=150;
无效设置(){
尺寸(300300);//标准尺寸
}
作废提款(){
浮动中心x=宽度/2;
float maxDeltaMouseX=宽度/2;
浮动deltaMouseX=鼠标中心X;
浮动速度x=deltaMouseX/maxDeltaMouseX;
背景(200);//暗淡的背景
println(“速度为”+speedX);//打印只是为了检查
ballX=ballX+speedX;//调整当前移动的位置
//把球留在屏幕上
if(ballX<0){
ballX=0;
}
否则如果(球>宽度){
ballX=宽度;
}
填充(255,0,0);
椭圆(ballX,ballY,20,20);
}
float ballX = 0;  // need to keep track of the ball's current position
float ballY = 150;

void setup() {
  size(300,300); // standard size
}


void draw() {

  float centerX = width/2;
  float maxDeltaMouseX = width/2;
  float deltaMouseX = mouseX-centerX;
  float speedX = deltaMouseX/maxDeltaMouseX;

  background(200);  // dull background
  println("speed is " + speedX); // print just to check
  ballX = ballX + speedX;  // adjust position for current movement


  //keep ball on screen
  if(ballX < 0){
    ballX = 0;
  }
  else if(ballX > width){
    ballX = width;
  }

  fill(255,0,0);
  ellipse(ballX, ballY, 20,20);
}