【问题标题】:How do i get a vector2 from a list index?如何从列表索引中获取 vector2?
【发布时间】:2021-07-06 07:42:57
【问题描述】:

假设我有一个包含 32 个对象的 ArrayList,形成一个 4x8 的 2d TileMap。

我想得到第 12 个物体的位置。我如何获得vector2? 请记住,对象没有vector2,我想从索引中获取位置。

【问题讨论】:

  • 不清楚你拥有什么以及你想要做什么。

标签: java list arraylist tile chunks


【解决方案1】:

如果您要问的是“我如何计算例如 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)

【讨论】:

    猜你喜欢
    • 2015-07-22
    • 2013-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多