为等距游戏计算具有屏幕坐标的数组中的位置



我正在使用这个网站用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;

相关内容

  • 没有找到相关文章

最新更新