Processing 处理如何转换鼠标坐标 我制作了一个2D PLAT前ESC游戏,我的游戏翻译我的字符X和Y线,所以我的角色总是在屏幕中间,但是似乎Moux和MouSe不翻译…我如何转换鼠标线和鼠标线

Processing 处理如何转换鼠标坐标 我制作了一个2D PLAT前ESC游戏,我的游戏翻译我的字符X和Y线,所以我的角色总是在屏幕中间,但是似乎Moux和MouSe不翻译…我如何转换鼠标线和鼠标线,processing,Processing,这是我的翻译代码 void draw() { background(100); if (updateBlocks == true) { updateBlocks(); } pushMatrix(); translate(-player.location.x + 320, -player.location.y + 320); mx = mouseX -player.location.x + 320; my = mouseY -player.location.

这是我的翻译代码

 void draw() {
  background(100);
  if (updateBlocks == true) {
    updateBlocks();
  }

  pushMatrix();
  translate(-player.location.x + 320, -player.location.y + 320);
  mx = mouseX -player.location.x + 320;
  my = mouseY -player.location.y + 320;
  for(int a = 0; a < mapWidth; a ++) {
   for(int b  = 0; b < mapHeight; b ++) {
    if(mx >= 16 * a && mx <= 16 * a + 16 && my >= 16 * b && my <= 16 * b + 16) {
     map[a][b] = 1;
     updateBlocks();
     break;
    }
   } 
  }
  for (int a = validBlocks.size()-1; a >= 0; a --) {
    PVector validBlock = validBlocks.get(a);
    rect(validBlock.x, validBlock.y, 16, 16);
  }
  player.update();
  player.display();
  popMatrix();
}
void draw(){
背景(100);
if(updateBlocks==true){
updateBlocks();
}
pushMatrix();
平移(-player.location.x+320,-player.location.y+320);
mx=mouseX-player.location.x+320;
my=mouseY-player.location.y+320;
对于(int a=0;a=16*a&&mx=16*b&&my=0;a--){
PVector validBlock=validBlocks.get(a);
rect(validBlock.x,validBlock.y,16,16);
}
player.update();
player.display();
popMatrix();
}

是的,mouseX和mouseY与窗口有关,与变换矩阵(平移、旋转等)无关。(0、0)位于左上角,与屏幕上发生的情况无关


你必须自己翻译这一点。在你的情况下,一些基本的减法就可以了。

你说的“mouseX和mouseY不翻译”是什么意思?你到底想做什么?换句话说,应该怎么做?translate使程序在你指定的地方连接0,0条线……但似乎mouseX和mouseY不受它的影响……就像我说的那样翻译(宽度/ 2,高度/ 2),这意味着程序0,0线是在我的窗口中间,所以如果有任何东西在窗口的左边,它的X位置小于0。但是MUSEX仍然是积极的。