Java,关卡编辑器问题
Java, Level Editor Issue
我 运行 遇到了一个我自己不知道如何解决的快速问题,但我相信在你的帮助下我会理解得更多。
我已经为我正在创建的游戏引擎创建了一个关卡编辑器,我正在尝试使鼠标位置对齐到 32x32(网格)或 64x64(网格),以便正确放置图块而不重叠彼此。
所以它不是这样的:
http://imgur.com/Sa3bh0H
但更像这样:
http://imgur.com/a/nck9N
抱歉解释得不好。
我使用的鼠标位置代码是
public int getMouseX() {
return mouseX; // Get MouseX
}
public int getMouseY() {
return mouseY; // Get Mouse Y
}
public void mouseMoved(MouseEvent e) {
mouseX = (int)(e.getX() / gc.getScale() /*+ gc.getWindow().getFrame().get*/);
mouseY = (int)(e.getY() / gc.getScale()); //CODE TO GET MOUSE X AND Y
}
//加载texture/image鼠标所在的代码
tMouseX = gc.getInput().getMouseX() -32;
tMouseY = gc.getInput().getMouseY() - 32;
putImage((int)tMouseX,(int)tMouseY,r);
//putImage函数
public void putImage(int x, int y)
{
objects.add(new Grass(x,y));
}
正在尝试将图像调整为 32x32
不用担心鼠标会吸附到网格上,您真的不想那样做。您想要的是将 tile 对齐到网格。
执行此操作的最佳方法是使用整数除法。使用整数除以您的图块大小以截断余数(或使用 floor
),然后通过乘以您的图块大小来按比例放大。
int tilepos_x = (int)(mousex / tileSize) * tileSize;
int tilepos_y = (int)(mousey / tileSize) * tileSize;
我 运行 遇到了一个我自己不知道如何解决的快速问题,但我相信在你的帮助下我会理解得更多。
我已经为我正在创建的游戏引擎创建了一个关卡编辑器,我正在尝试使鼠标位置对齐到 32x32(网格)或 64x64(网格),以便正确放置图块而不重叠彼此。
所以它不是这样的: http://imgur.com/Sa3bh0H 但更像这样: http://imgur.com/a/nck9N 抱歉解释得不好。
我使用的鼠标位置代码是
public int getMouseX() {
return mouseX; // Get MouseX
}
public int getMouseY() {
return mouseY; // Get Mouse Y
}
public void mouseMoved(MouseEvent e) {
mouseX = (int)(e.getX() / gc.getScale() /*+ gc.getWindow().getFrame().get*/);
mouseY = (int)(e.getY() / gc.getScale()); //CODE TO GET MOUSE X AND Y
}
//加载texture/image鼠标所在的代码
tMouseX = gc.getInput().getMouseX() -32;
tMouseY = gc.getInput().getMouseY() - 32;
putImage((int)tMouseX,(int)tMouseY,r);
//putImage函数
public void putImage(int x, int y)
{
objects.add(new Grass(x,y));
}
正在尝试将图像调整为 32x32
不用担心鼠标会吸附到网格上,您真的不想那样做。您想要的是将 tile 对齐到网格。
执行此操作的最佳方法是使用整数除法。使用整数除以您的图块大小以截断余数(或使用 floor
),然后通过乘以您的图块大小来按比例放大。
int tilepos_x = (int)(mousex / tileSize) * tileSize;
int tilepos_y = (int)(mousey / tileSize) * tileSize;