level 1
喔!!厉害了楼主。
最近也是才接触processing,也是觉得好玩,但是目前还只是小渣渣……
2017年03月12日 14点03分
6
level 3
代码在这:
float dx,dy;
int ix,iy;
tailBall m;
float speed=0.03;
void setup(){
size(400,400);
noStroke();
frameRate(60);
m=new tailBall(30);
}
void draw(){
dx+=(mouseX-dx)*speed;
dy+=(mouseY-dy)*speed;
ix=int(dx);
iy=int(dy);
background(200);//背景颜色
m.update(ix,iy);
}
class tailBall{
int c;
int num;
int []mx;
int []my;
tailBall(int pn){
num=pn;
mx=new int[num];
my=new int[num];
c=num-1;
}
void update(int Mx,int My){
mx[c]=Mx;
my[c]=My;
for(int i=0;i<num-1;i++){
int m=(c+i)%(num-1);
fill(255,map(i,0,num-1,255,0));//球的颜色
ellipse(mx[m],my[m],map(i,0,num-1,30,1),map(i,0,num-1,30,1));
}
c--;
if(c<0){
c=num-1;
}
}
}
最近也在学这个,思路就是创建两个数组分别存储鼠标的x,y坐标,从而在屏幕上显示尾巴的效果,代码里的类只有一个参数,就是储存xy坐标的数组的长度,长度越长,尾巴拖得越长。 不知道楼主是不是和我一个思路
2017年04月09日 07点04分
10
不错的程序,就是30个圆一个个更新位置吧?
2017年04月11日 04点04分
@匆_匆_过_客 对,也可以理解成每一帧只创建一个新的圆,圆的坐标就是传入类里的坐标,同时删掉最后一个圆,剩下的中间的圆位置不变只是缩小,变淡
2017年04月11日 11点04分