我正在做一个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();
}
答案 0 :(得分:2)
是的,无论您的转换矩阵(平移,旋转等)如何,mouseX和mouseY都与您的窗口有关。无论屏幕上发生了什么,(0,0)都在左上角。
你必须自己翻译这一点。在你的情况下,会有一些基本的减法。