Week06 水果忍者
1.一起飛上去的球
程式邏輯:
一開始生成的地方在畫面外面(X軸上隨機,Y軸固定在700),
並設定速度(VX,VY),
再來,畫圓讓他在畫面上。
程式碼:
float []fX=new float[20];
float []fY=new float[20];
float []fVX=new float[20];
float []fVY=new float[20];
void setup(){
size(800,600);
for(int i=0;i<20;i++){
fX[i]=random(800); fVX[i]=3;
fY[i]=700; fVY[i]=-35;
}
}
void draw(){
background(0);
for(int i=0;i<20;i++){
ellipse(fX[i],fY[i],100,100);
fX[i]+=fVX[i];
fY[i]+=fVY[i];
fVY[i]+=0.98;
}
}
2.亂飛的球
程式邏輯:
增加一個副函式reborn(int i)去記我們會常用的程式碼(重生球球),
重生的三個地方:一開始畫的時候、滑鼠碰到的時候、低於生成的位置的時候
程式碼:
float []fX=new float[20];
float []fY=new float[20];
float []fVX=new float[20];
float []fVY=new float[20];
void reborn(int i){
fX[i]=random(800); fVX[i]=(6)-3;
fY[i]=700; fVY[i]=-35;
}
void setup(){
size(800,600);
for(int i=0;i<20;i++){
reborn(i);
}
}
void draw(){
background(0);
for(int i=0;i<20;i++){
if(dist(mouseX,mouseY,fX[i],fY[i])<=50){
reborn(i); continue;
}
ellipse(fX[i],fY[i],100,100);
fX[i]+=fVX[i];
fY[i]+=fVY[i];
fVY[i]+=0.98;
if(fY[i]>700) reborn(i);
}
}
沒有留言:
張貼留言