2018年10月11日 星期四

Week 05 宋侑恩

Week 05 Part 1 - 接機蛋遊戲

1.先做出掉落的雞蛋群

程式碼:

float[] eggX=new float[100];
float[] eggY=new float[100];
void setup(){
  size(800,600);
  for(int i=0;i<100;i++){ //雞蛋隨機掉落
    eggX[i]=random(100,700);
    eggY[i]=-random(2000);
  }
}
void draw(){
  background(255);
  for(int i=0;i<100;i++){
    ellipse(eggX[i],eggY[i],80,100);
    eggY[i]+=5;
  }
}


2.用長方形來接雞蛋

程式碼:

float[] eggX=new float[100];
float[] eggY=new float[100];
boolean[] EggsDie=new boolean[100];
void setup(){
  size(800,600);
  for(int i=0;i<100;i++){
    eggX[i]=random(100,700);//random
    eggY[i]=-random(2000);
    EggsDie[i]=false;
  }
}
void draw(){
  background(255);
  rect(mouseX-50,mouseY-25,100,50);
  for(int i=0;i<100;i++){ //所有的雞蛋
    if(EggsDie[i]) continue;
    ellipse(eggX[i],eggY[i],80,100); //畫出雞蛋
    eggY[i]+=5; //更新雞蛋往下掉的位置
    if(eggY[i]>700) eggY[i]=-2000+600; //如果雞蛋碰到底部,重新生長
    if(dist(mouseX,mouseY,eggX[i],eggY[i])<50){ //碰到雞蛋底,雞蛋就會消失(較合理)
      EggsDie[i]=true; //如果方形碰到雞蛋,則雞蛋消失
    }
  }
}


3.計算分數

程式碼:

PImage [] imgN=new PImage[10]; //數字圖片的陣列
float[] eggX=new float[100];
float[] eggY=new float[100];
boolean[] EggsDie=new boolean[100];
void setup(){
  size(800,600);
  for(int i=0;i<=9;i++) imgN[i] = loadImage(i+".png"); //利用for迴圈讀入圖片檔
  for(int i=0;i<100;i++){
    eggX[i]=random(100,700);
    eggY[i]=-random(2000);
    EggsDie[i]=false;
  }
}
int score=0;
void draw(){
  background(255);
  fill(96,48,0);
  rect(mouseX-50,mouseY-25,100,50);
  fill(255,255,128);
  for(int i=0;i<100;i++){
    if(EggsDie[i]) continue;
    ellipse(eggX[i],eggY[i],80,100);
    eggY[i]+=5;
    if(eggY[i]>700) eggY[i]=-2000+600;
    if(dist(mouseX,mouseY,eggX[i],eggY[i])<50){
      EggsDie[i]=true;
      score+=100;
    }
  }
  //fill(255,0,0); textSize(80); text("Score:"+score,100,100); //利用文字的方式顯示出分數
  int now=score;
  for(int i=0;i<7;i++){ //分數計算
    image(imgN[(now%10)],400-i*100,100,50,100);
    now/=10;
  }
}


Week 05 Part 2 - 水果忍者遊戲

程式碼:

PImage []img=new PImage[8];//8 張橘子的照片
float []orangeX=new float[8];
float []orangeY=new float[8];
float []orangeVX=new float[8];
float []orangeVY=new float[8];
void orangeReborn(int i){
  orangeX[i]= random(800);
  orangeY[i]= 700;
  orangeVX[i]=random(8)-4;
  orangeVY[i]= -40;
}
void setup(){
  size(800,600);
  for(int i=0;i<8;i++) img[i]=loadImage("Orange.png"); //讀入照片
  for(int i=0;i<8;i++) orangeReborn(i); //重新生長
  for(int i=0;i<10;i++) sword[i]=new PVector();
}
PVector [] sword = new PVector[10];
void draw(){
  background(255);
  for(int i=0;i<8;i++){ //畫出橘子
    image(img[i],orangeX[i],orangeY[i],150,150);
    orangeX[i] += orangeVX[i];
    orangeY[i] += orangeVY[i];
    orangeVY[i] +=0.98;
  }
  for(int i=9;i>0;i--){
    sword[i].x=sword[i-1].x; sword[i].y=sword[i-1].y;
  }
  sword[0].x=mouseX; sword[0].y=mouseY;
  for(int i=1;i<10;i++){ //畫出線來當刀子
    line(sword[i].x,sword[i].y,sword[i-1].x,sword[i-1].y);
  }
}



沒有留言:

張貼留言