我正在使用这个网站用java制作一个非常基本的Isometric游戏,只是它用来将屏幕坐标转换为数组中某个位置的方法不起作用。
这就是我用来将屏幕坐标转换为阵列位置的方法:
public void GetMouseInArray(){
int[] pos = new int[2];
pos[0] = window.getMousePosition().x;
pos[1] = window.getMousePosition().
pos = CalcCarPos(pos);
int[] temppos = new int[2];
temppos[0] = (int) Math.floor(pos[0]/80);
temppos[1] = (int) Math.floor(pos[1]/80);
pos = temppos;
}
这就是CalcCarPos函数:
private int[] CalcCarPos(int[] pos){
int[] temppos = new int[2];
temppos[0] = (2*pos[1]+pos[0])/2;
temppos[1] = (2*pos[1]-pos[0])/2;
return temppos;
}
我使用几乎相同的代码在屏幕上绘制阵列,我的瓷砖是80x80像素。我在这里做错了什么?
temppos[0] = (2*pos[1]+pos[0])/2;
temppos[1] = (2*pos[1]-pos[0])/2;
这是你想要的吗?这意味着将pos[1]乘以2,将pos[0]加到结果上,然后将其除以2。还是要将pos[1]和pos[0]的和乘以2?
temppos[0] = (2*(pos[1]+pos[0]))/2;
temppos[1] = (2*(pos[1]-pos[0]))/2;