今天要做會掉落的球
先把球做出來
float x=250,y=250,vx=0,vy=3;
void setup(){
size(500,600);
}
void draw(){
background(255);
ellipse(x,y,50,50);
//y++;//落下速度
//y=y+3;//y++的三倍速度
y=y+vy;//vy是速度
}
再來做出第二顆球,然後速度要不一樣
float x=250,y=0,vx=0,vy=4;
float x2=150,y2=0,vx2=0,vy2=3;
void setup(){
size(500,600);
}
void draw(){
background(255);
ellipse(x,y,50,50);
ellipse(x2,y2,50,50);
y=y+vy;//vy是速度
y2=y2+vy2;
}
再來用陣列跟迴圈來做球
程式碼:float []x={250,150,350,300};
float []y={0,50,80,100};
float []vx={0,0,0,0};
float []vy={3,2,2.5,4};
void setup(){
size(500,600);
}
void draw(){
background(255);
for(int i=0; i<4 ;i++){
ellipse(x[i],y[i],50,50);
y[i] = y[i] + vy[i];//vy是速度
}
}
再來是球碰到地板跟天花板會回彈
float []x={250,150,350,300};
float []y={0,50,80,100};
float []vx={0,0,0,0};
float []vy={3,2,2.5,4};
void setup(){
size(500,600);
}
void draw(){
background(255);
for(int i=0; i<4 ;i++){
ellipse(x[i],y[i],50,50);
y[i] = y[i] + vy[i];//vy是速度
//以下為回彈
if(y[i]>600)vy[i]=-vy[i];//碰到地板後vy[i]會變成負的
if(y[i]<0)vy[i]=-vy[i];//再碰到後會再變
}
}
然後做出一個碰到會暫停的球
程式碼:
float []x={250,150,350,300};
float []y={0,50,80,100};
float []vx={0,0,0,0};
float []vy={3,2,2.5,4};
void setup(){
size(500,600);
}
void draw(){
background(255);
for(int i=0; i<4 ;i++){
fill(#F7E302);
ellipse(x[i],y[i],50,50);
if(dist(mouseX,mouseY,x[i],y[i])<=50){
continue;
}
y[i] = y[i] + vy[i];//vy是速度
if(y[i]>600)vy[i]=-vy[i];//碰到地板後vy[i]會變成負的
if(y[i]<0)vy[i]=-vy[i];//再碰到後會再變
fill(255,0,0);ellipse(mouseX,mouseY,50,50);
}
}
程式碼:
float []x={250,150,350,300};float []y={0,50,80,100};float []vy={3,2,2.5,4};boolean []dead={false,false,false,false};//false 0,true 1void setup(){size(500,600);}void draw(){background(255);for(int i=0; i<4 ;i++){if(dist(mouseX,mouseY,x[i],y[i])<=50){dead[i]=true;//碰到就死掉}if(dead[i]==true)continue;//如果沒有死掉fill(#F7E302);ellipse(x[i],y[i],50,50);y[i] = y[i] + vy[i];//vy是速度if(y[i]>600)vy[i]=-vy[i];//碰到地板後vy[i]會變成負的if(y[i]<0)vy[i]=-vy[i];//再碰到後會再變}fill(255,0,0);ellipse(mouseX,mouseY,50,50);}
沒有留言:
張貼留言