我如何从列表索引中获取 vector2?
How do i get a vector2 from a list index?
假设我有一个包含 32 个对象的 ArrayList,形成一个 4x8 的二维 TileMap。
我想获取第 12 个对象的位置。我如何获得vector2?
请记住,对象没有 vector2,我想从索引中获取位置。
如果您要问的是“我如何计算例如 4x8 地图中第 12 个对象的位置”,那么算法是这样的:
(我假设 vector2 是保存 int 的东西,int 作为 x、y 位置和 0,0 是原点,我们从 1 开始计算图块):
public class Test {
private static final int xDimension = 4;
public static void main(String[] args) {
System.out.println(getPosition(1));
System.out.println(getPosition(3));
System.out.println(getPosition(4));
System.out.println(getPosition(5));
System.out.println(getPosition(12));
System.out.println(getPosition(32));
}
public static Vector2 getPosition(int n) {
int y = (n - 1) / xDimension;
int x = (n - 1) % xDimension;
return new Vector2(x, y);
}
public static class Vector2 {
int x, y;
public Vector2(int x, int y) {
this.x = x;
this.y = y;
}
@Override
public String toString() {
return "(" + x + ", " + y + ")";
}
}
}
输出:
(0, 0)
(2, 0)
(3, 0)
(0, 1)
(3, 2)
(3, 7)
假设我有一个包含 32 个对象的 ArrayList,形成一个 4x8 的二维 TileMap。
我想获取第 12 个对象的位置。我如何获得vector2? 请记住,对象没有 vector2,我想从索引中获取位置。
如果您要问的是“我如何计算例如 4x8 地图中第 12 个对象的位置”,那么算法是这样的:
(我假设 vector2 是保存 int 的东西,int 作为 x、y 位置和 0,0 是原点,我们从 1 开始计算图块):
public class Test {
private static final int xDimension = 4;
public static void main(String[] args) {
System.out.println(getPosition(1));
System.out.println(getPosition(3));
System.out.println(getPosition(4));
System.out.println(getPosition(5));
System.out.println(getPosition(12));
System.out.println(getPosition(32));
}
public static Vector2 getPosition(int n) {
int y = (n - 1) / xDimension;
int x = (n - 1) % xDimension;
return new Vector2(x, y);
}
public static class Vector2 {
int x, y;
public Vector2(int x, int y) {
this.x = x;
this.y = y;
}
@Override
public String toString() {
return "(" + x + ", " + y + ")";
}
}
}
输出:
(0, 0)
(2, 0)
(3, 0)
(0, 1)
(3, 2)
(3, 7)