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仍然是积极的。