【问题标题】:Rotate values in ArrayList java旋转ArrayList java中的值
【发布时间】:2013-11-16 23:47:48
【问题描述】:

我有一个 ArrayList :

ArrayList<Body> snakeBody = new ArrayList<Body>();
Body bodyOne = new Body();
bodyOne.setY(10);
bodyTwo.setX(10);

Body bodyTwo = new Body();
bodyTwo.setY(9);
bodyTwo.setX(10);

snakeBody.add(bodyOne);
snakeBody.add(bodyTwo);

好的,没问题。当我移动蛇时……她正在向下移动(增量 Y)(想象一个网格)。记住,我的蛇有两个身体。

我知道下一个移动,bodyOne-coorY 将是 11 ,而 bodyTwo-Y 将是 10 。

这是我的问题:如何交换这些值?我不知道。看看这个。

SnakeBody    Position    Y     X   
                0        10    10
                1         9    10

现在,下一个动作。是的++

New value for Y its 11 

I want this result , but I can't get it.

Position    Y     X   
   0        11    10
   1        10    10

我正在做这个,但不工作

        for ( int i = 0  ; i < snakeBody.size() - 1  ;  i++ ){

        y = snakeBody.get(i).getPositionY();
        x = snakeBody.get(i).getPositionX();

        snakeBody.get( i + 1 ).setPositionY(y);
        snakeBody.get( i + 1 ).setPositionX(x);

    }

最后一个值与上一个相同。

谢谢大家。

【问题讨论】:

    标签: java android arraylist position


    【解决方案1】:

    我不确定我是否完全理解了你的问题,但这里是。

    如果您只是想增加每个身体的 Y 坐标,请尝试类似

    for(int i = 0; i < snakeBody.size() - 1; i++)  {
        Body currentBody = snakeBody.get(i);
        currentBody.setPositionY(currentBody.getPositionY()+1);
        snakeBody.set(i, currentBody);
    }
    

    如果您尝试在蛇身 ArrayList 中交换 bodyOne 和 bodyTwo 的位置,那么 this other question 可能会在他们提出类似建议的地方有所帮助

    Collections.swap(snakeBody, 0, 1);
    

    【讨论】:

      猜你喜欢
      • 2022-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-21
      • 2011-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多