使用等距游戏的屏幕坐标计算数组中的位置

时间:2013-11-20 19:40:14

标签: java arrays coordinates isometric

我正在使用this网站在java中制作一个非常基本的等距游戏,只有它用于将屏幕坐标转换为数组中某个位置的方法无效。

这是我用来将屏幕坐标转换为数组位置的原因:

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像素。我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

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;