您好我有一个应用程序,其中有浮动的圈子。此刻不要漂浮,这是问题所在。我希望他们在随机方向慢慢移动。我怎样才能做到这一点? 这是我的圈子类:
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);
}
}
答案 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。