处理如何翻译鼠标坐标

时间:2014-04-22 23:00:21

标签: processing

我正在做一个2d平台前esc游戏,我让我的游戏翻译我的角色x和y绳索所以我的角色总是在屏幕中间,但似乎mouseX和mouseY不翻译...如何我会转换mouseX和mouseY线吗?

这是我的翻译代码

 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();
}

1 个答案:

答案 0 :(得分:2)

是的,无论您的转换矩阵(平移,旋转等)如何,mouseX和mouseY都与您的窗口有关。无论屏幕上发生了什么,(0,0)都在左上角。

你必须自己翻译这一点。在你的情况下,会有一些基本的减法。