我有经典的球在一条线上移动:
class Circle{
float x,y,vx,vy,size;
Circle(float ax,float ay){
x = ax;
y = ay;
size = 5;
vx = random(-.1,.1);
vy = random(-.1,.1);
}
void update(int w,int h){
x += vx;
y += vy;
if(x < 0 || x > w) vx *= -1;
if(y < 0 || y > h) vy *= -1;
}
void draw(){
pushStyle();
noStroke();
fill(0);
ellipse(x,y,size,size);
popStyle();
}
}
但是,我不希望他们排成一行。
我希望他们以不规则的曲线移动。我能添加什么?噪声?罪? COS?
非常感谢。
答案 0 :(得分:0)
您可能希望查看this page。使用工作样本简化方程式的简单指南。请注意,相同的技术可用于时间或空间中的曲线。
编辑:忘了说这个网站是针对flash的,但无论如何都很简单,即使你像我一样没有闪存知识。代码示例很容易适应。
答案 1 :(得分:0)
取决于你想要什么,但如果你想让它们按正弦曲线移动,例如,你可以这样做:
class Circle{
float x,y,vx,vy,size;
float sinCtr = 0;
// ...
void update(int w,int h){
x += vx;
y = h/2 + 50 * Math.sin(sinCtr);
sinCtr += 0.02;
}