如何计算在嵌套的循环网格内部单击哪个“单元格” >> [

问题描述 投票:2回答:2
我目前正在尝试返回一个“单元格”数字,具体取决于我在由鼠标单击函数内部嵌套循环的网格内单击的位置。我已经做了一个if语句来检查是否在整个网格内单击了鼠标,但是现在我希望能够返回一个数字示例9(如果我单击了左上角的第八个单元格)。

问题:认为网格中的单元格从0开始,从顶部开始编号留给右下角。如果单击了某个单元格,则需要确定单击了哪个单元格并返回该单元格编号。您将要使用整数除法和取模来计算像元数

我对如何进行此操作没有任何线索。我已经为网格和鼠标单击功能添加了for循环功能。

final int COLUMNS = 8; final int ROWS = 12; int tileSize = 30; int ellipseSize = 20; int ellipseSpacing = 10; int numMoves; int selectedCell; int targetX; int targetY; int randomTarget; int gridX; int gridY; int score = 0; int clickX; int clickY; boolean mouseoverColour = false; void setup(){ size (700,500); background(0); //drawTarget(); } void draw(){ drawColourgrid(); } void drawColourgrid(){ for(int i = 0; i < COLUMNS*tileSize; i+=tileSize){ for(int j = 0; j < ROWS*tileSize; j+=tileSize){ noFill(); stroke(255); rect(i + 100,j + 60,tileSize,tileSize); } } //fill(255); //rect(100,60,240,360); } void mouseClicked(){ if(mouseX >= 100 && mouseX <= 340 && mouseY >= 60 && mouseY <= 360){ mouseoverColour = true; clickX = mouseX; clickY = mouseY; println(clickX, clickY); } }

我如何计算像1或2这样的整数(在左上方)?我尝试使用mouseX和mouseY,但永远不会保持不变

我目前正在尝试返回一个“单元格”数字,具体取决于我在由鼠标单击函数内部嵌套循环的网格内单击的位置。我已经做了一个if语句来检查...

java grid processing cell
2个回答
1
投票
要计算单元格的行和列索引(从0开始),您必须相对于网格的左上角原点(mouseX - 100mouseY - 60)计算鼠标位置并除以大小一个单元格:

0
投票
也许这可以工作(未经测试):
© www.soinside.com 2019 - 2024. All rights reserved.