2018年10月18日 星期四

Week06 呆江的筆記

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);
  }
}

沒有留言:

張貼留言