蛇(游戏)般的移动矩形

时间:2014-02-18 20:13:42

标签: java animation sprite

我正在尝试写一些简单的蛇游戏。 为此,我有一个带有矩形的ArrayList。 改变方向已经有效了。

但是现在,当我添加更多矩形(蛇身部位)时,我怎样才能实现它们跟随“头部”?

我不能改变整个ArrayList的方向,这会导致一些长块向上或向下移动。它的身体应该跟随头部的运动,走在头后。

我怎样才能做到这一点?

这是我没有完全无用的蛇更新方法...

ArrayList<Rectangle> rects;

public void update() {
    if(isMoving && System.currentTimeMillis() - moveTimer > moveSpeed) {
        rects.get(0).setLocation((int)(rects.get(0).getX()+dx*Core.GRID_SIZE), (int)(rects.get(0).getY()+dy*Core.GRID_SIZE));
        for(int i = 0; i < rects.size()-1; i++) {
            if(rects.get(i).getX() < rects.get(i+1).getX()) {
                rects.get(i).setLocation((int)(rects.get(0).getX()+Core.GRID_SIZE), (int)(rects.get(i).getY()));
            }
        }
        moveTimer = System.currentTimeMillis();
    }

1 个答案:

答案 0 :(得分:0)

这就是我解决它的方法:首先是最后一个从最后一个获得坐标,依此类推......直到计数器达到0.第一个“头”跟随用户输入。

感谢您的贡献!

for(int i = rects.size()-1; i > 0; i--) {
            rects.get(i).setLocation((int)(rects.get(i-1).getX()), (int)(rects.get(i-1).getY()));
        }
        rects.get(0).setLocation((int)(rects.get(0).getX()+dx*Core.GRID_SIZE), (int)(rects.get(0).getY()+dy*Core.GRID_SIZE));