Java如何让一个圆圈慢慢移动?

时间:2015-05-30 15:08:01

标签: java

您好我有一个应用程序,其中有浮动的圈子。此刻不要漂浮,这是问题所在。我希望他们在随机方向慢慢移动。我怎样才能做到这一点? 这是我的圈子类:

    public class data {

    public int x,y, size,id;

    public data(int x,int y){
        this.x = x;
        this.y = y;
        size = new Random().nextInt(50);
        id = new Random().nextInt(10);

    }

    public void tick(){
    }

    public void render(Graphics g){
        g.setColor(new Color(38,127,0));
        g.fillOval(x, y, size, size);
        g.setColor(Color.black);
        g.drawOval(x, y, size, size);

    }
}

2 个答案:

答案 0 :(得分:0)

通过向x和y添加随机值,您可以进行非常随机的移动:

private Random random = new Random();

public void tick() {
    x = x + random.nextFloat();
    y = y + random.nextFloat();
}

这将导致非常模糊的运动。

另一种选择是拥有2个变量:motionX和motionY。那些被添加到x和y的每个tick,之后你将随机值添加到motionX和motionY:

private Random random = new Random();
private float xMotion = 0f, yMotion = 0f;
private float factor = 0.5f;    //just a value to reduce speed

private void tick() {
    x = x + xMotion;
    y = y + yMotion;
    xMotion = xMotion + random.nextFloat() * factor;
    yMotion = yMotion + random.nextFloat() * factor;
}

答案 1 :(得分:0)

首先,我认为你搞砸了哪一个你应该随机,你随机选择了一个大小和id(这是什么呢?),而不是x,y值。另外,我不知道为什么,但似乎渲染程序必须被称为paint。