顯示具有 week05 標籤的文章。 顯示所有文章
顯示具有 week05 標籤的文章。 顯示所有文章

2018年10月18日 星期四

Week05劉峻宇



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. 期中作品討論

運用老師教的,製作出

射擊遊戲


可能會使用到水果忍者的程式,當物體被射中時,物體會消失
並運用物體下移動,一個計時的射擊遊戲,射中機率越高,分數越高
並內插mp3音效檔,當物體被射中時發出音效





2018年10月11日 星期四

Week 05 Hankins

課堂一:回顧前四周所有教學的內容。



課堂二:接雞蛋

新學的內容有:

1.random()函數


2.dist()函數



3.分數顯示器

 

4.包裝分數顯示器(利用image來美化)







PImage[] imgN=new PImage[10];
float[] eggX=new float[100];
float[] eggY=new float[100];
boolean[] eggDie=new boolean[100];
void setup(){
 size(800,600);

 for(int i=0;i<=9;i++) imgN[i] = loadImage(i+".png");

 for(int i=0;i<100;i++){
  eggX[i]=random(100,700);
  eggY[i]=-random(2000);
 }
}
int score=0;
void draw(){
   background(255);
 
  fill(255);
 
  rect(mouseX-50,mouseY-25,100,50);
  for(int i=0;i<100;i++){
   if(eggDie[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){
      eggDie[i]=true;
     
      score+=100;
   }
  }
 fill(255,0,0); textSize(80); text("Score:",260,600);
 int now=score;
 for(int i=0;i<6;i++){
    image(imgN[(now%10)], 750-i*50, 550, 50, 50);
    now/=10;
 }
 fill(0); rect(600,550,50,50);
   rect(750,550,50,50);
}

課堂三:FRUIT NINJA

WEEK05_阿天筆記

一:
讓氣球飛一段時間



二:
讓氣球一直飛


三:
初步小遊戲 (還沒有分數


四:
加了分數~


五:
水果忍者 西瓜飛起來 牛頓定律


六:
有刀了!! 但還沒辦法切


week05

接雞蛋

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















float[] eggX=new float[100];
float[] eggY=new float[100];
boolean[]eggDie=new boolean[100];
void setup(){
  size(800,600);
  for(int i=0;i<100;i++){
    eggX[i]=random(100,700);//隨機生成
    eggY[i]=-random(2000);
    eggDie[i]=false;
  }
}
void draw(){
  background(255);
  rect(mouseX-50,mouseY-25,100,50);
  for(int i=0;i<100;i++){
    if(eggDie[i])continue; //100顆雞蛋使用完畢可重複利用
    ellipse(eggX[i],eggY[i],80,100);
    eggY[i]+=5;
    if(eggY[i]>700) eggY[i]=-2000+600;//雞蛋碰到地板,消失再重新生成
    if(dist(mouseX-50,mouseY-25,eggX[i],eggY[i])<50){
      eggDie[i]=true;//盒子碰到雞蛋,雞蛋消失
    }
  }
}















PImage[] imgN=new PImage[10];//放入10個好看的數字
float[] eggX=new float[100];
float[] eggY=new float[100];
boolean[]eggDie=new boolean[100];
void setup(){
  size(800,600);
  for(int i=0;i<=9;i++)imgN[i]=loadImage(i+".png");
  for(int i=0;i<100;i++){
    eggX[i]=random(100,700);
    eggY[i]=-random(2000);
    eggDie[i]=false;
  }
}
int score=0;
void draw(){
  background(255);rect(mouseX-50,mouseY-25,100,50);
  for(int i=0;i<100;i++){
    if(eggDie[i])continue;
    ellipse(eggX[i],eggY[i],80,100);
    eggY[i]+=5;
    if(eggY[i]>700) eggY[i]=-2000+600;
    if(dist(mouseX-50,mouseY-25,eggX[i],eggY[i])<50){
      eggDie[i]=true;
      score+=100;//接到一顆+100
    }
  }
  int now=score;
  for(int i=0;i<7;i++){
    image(imgN[(now%10)],800-i*100,100,100,150);
    now/=10;
  }
}















PImage []img;
float []cherryX=new float[8];
float []cherryY=new float[8];
float []cherryVX=new float[8];
float []cherryVY=new float[8];
void cherryRebord(int i){
  cherryX[i]=random(800);
  cherryY[i]=700;
  cherryVX[i]=random(8)-4;
  cherryVY[i]=-40;
}
void setup(){
  size(800,600);
  println("1");
  img=new PImage[8];
  
  for(int i=0;i<8;i++) img[i]=loadImage("cherry.png");
  println("2");
  for(int i=0;i<8;i++) cherryRebord(i);
  println("3");

  for(int i=0;i<10;i++)sword[i]=new PVector();
  println("4");

}
PVector [] sword=new PVector[10];
void draw(){
  background(255);
  for(int i=0;i<8;i++) {
    image(img[i],cherryX[i],cherryY[i],100,150);
    cherryX[i]+=cherryVX[i];
    cherryY[i]+=cherryVY[i];
    cherryVY[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);
  }
}







week05 互動技術筆記@

1.接雞蛋遊戲

   for(int i=0;i<100;i++){
    eggX[i]=random(100,700); //隨機100~700
    eggY[i]=-random(2000); //隨機0~2000
    eggDie[i]=false;
  }

  for(int i=0;i<100;i++){
    if(eggDie[i])  continue;
    //設定一個布林變數,決定雞蛋是否消失。若為真,下面迴圈不會執行
    ellipse(eggX[i],eggY[i],80,100);
    eggY[i]+=5;
    if(eggY[i]>700)  eggY[i]=-2000+600;
    if(dist(mouseX-50,mouseY-50,eggX[i],eggY[i])<50) //若圓盤和滑鼠距離小於50
      eggDie[i]=true; //布林變數設為真,已決定雞蛋是否消失
  }


加入分數計算
    if(eggY[i]>700)  eggY[i]=-2000+600;
    if(dist(mouseX-50,mouseY-50,eggX[i],eggY[i])<50){
      eggDie[i]=true;
      score+=100; //雞蛋消失,分數+100
    }
  }
  fill(255,0,0);
  textSize(80);
  text("Score:"+score,100,100);
  //顯示分數

Week 05

讓許多雞蛋落下


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



開始接雞蛋


float[] eggX=new float[100];float[] eggY=new float[100];                          
boolean[] eggDie=new boolean[100];
void setup(){  size(800,600);  
for(int i=0;i<100;i++){
    eggX[i]=random(100,700);
    eggY[i]=-random(2000);
               eggDie[i]=false;  }
}
void draw(){
  background(255);
  rect(mouseX-50, mouseY-25,100,50);
  for(int i=0;i<100;i++){//for all eggs
    if(eggDie[i])continue;//continue to for loop
    ellipse(eggX[i], eggY[i],80,100);
    eggY[i]+=5; 
   if(eggY[i]>700) eggY[i]=-2000+600;
    if(dist(mouseX-50,mouseY-25,eggX[i],eggY[i])<50){
                        eggDie[i]=true;  }
}
}


水果忍者


PImage img;//讀圖檔
float bananaX=0, bananaY=700;//lower-left
float bananaVX=6,bananaVY=-40;//to right-top
void setup(){
  size(800,600);
  img=loadImage("banana.png");
}
void draw(){
  background(255);
  image(img,bananaX,bananaY,100,150);
  bananaX +=bananaVX;
  bananaY +=bananaVY;
  bananaVY+=0.98;//gravity of earth
}

加上刀子


PImage img;//讀圖檔
float bananaX=0, bananaY=700;//lower-left
float bananaVX=6,bananaVY=-40;//to right-top
void setup(){
  size(800,600);
  img=loadImage("banana.png");
  for(int i=0;i<10;i++) sword[i]=new PVector();
}
PVector [] sword= new PVector[10];

void draw(){
  
  background(255);
  image(img,bananaX,bananaY,100,150);
  bananaX +=bananaVX;
  bananaY +=bananaVY;
  bananaVY+=0.98;//gravity of earth
 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;//Update sword[0] to newest mouse
 for(int i=1;i<10;i++){
   line(sword[i].x, sword[i].y, sword[i-1].x, sword[i-1].y);
 }
}

一次出現很多香蕉!!


PImage []img=new PImage[8];
float []bananaX=new float[8];
float []bananaY=new float[8];
float []bananaVX=new float[8];
float []bananaVY=new float[8];

void bananaReborn(int i){
   bananaX[i]=random(800);
   bananaY[i]=700;
   bananaVX[i]=random(8)-4;
   bananaVY[i]=-40;
}
void setup(){
  size(800,600);
  for(int i=0;i<8;i++) img[i]=loadImage("banana.png");
  for(int i=0;i<8;i++) bananaReborn(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],bananaX[i],bananaY[i],100,150);
  bananaX[i] +=bananaVX[i];
  bananaY[i] +=bananaVY[i];
  bananaVY[i]+=0.98;//gravity of earth
 }
 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;//Update sword[0] to newest mouse
 for(int i=1;i<10;i++){
   line(sword[i].x, sword[i].y, sword[i-1].x, sword[i-1].y);
 }

week5_劉沛潔

校園參訪在台北車站水源街

接雞蛋
float[]eggX=new float[100];
float[]eggY=new float[100];
boolean[]eggDie=new boolean[100];
void setup(){
  size(800, 600);
  for(int i=0; i<100; i++){
    eggX[i]=random(100,700);
    eggY[i]=-random(2000);
    eggDie[i]=false;
  }
}
void draw(){
  background(255);
  rect(mouseX-50, mouseY-25, 100, 50);
  for(int i=0; i<100; i++){
    if(eggDie[i])continue;
    ellipse(eggX[i], eggY[i], 80, 100);
    eggY[i]+=5;
    if(eggY[i]>700)eggY[i]=-2000+600;
    if(dist(mouseX-50, mouseY-25, eggX[i], eggY[i])<50){
      eggDie[i]=true;
    }
  }
}


加分數
int score=0;
void draw(){
  background(255);
  fill(255);rect(mouseX-50, mouseY-25, 100, 50);
  for(int i=0; i<100; i++){
    if(eggDie[i])continue;
    ellipse(eggX[i], eggY[i], 80, 100);
    eggY[i]+=5;
    if(eggY[i]>700)eggY[i]=-2000+600;
    if(dist(mouseX-50, mouseY-25, eggX[i], eggY[i])<50){
      eggDie[i]=true;
      score+=100;
    }
  }
  fill(255, 0, 0);textSize(80);text("Score:"+score, 100, 100);
}


水果忍者


PImage[]img=new PImage[8];
float[]cherryX= new float[8];
float[]cherryY= new float[8];
float[]cherryVX= new float[8];
float[]cherryVY= new float[8];
void cherryReborn(int i){
  cherryX[i]=random(800);
  cherryY[i]=700;
  cherryVX[i]=random(8)-4;
  cherryVY[i]=-40;
}
void setup(){
  size(800, 600);
  for(int i=0; i<8; i++)img[i]=loadImage("pie.png");
  for(int i=0; i<8; i++)cherryReborn(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], cherryX[i], cherryY[i], 100, 150);
    cherryX[i]+=cherryVX[i];
    cherryY[i]+=cherryVY[i];
    cherryVY[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);
  }
}

week05 Steven課堂筆記

1.week1-week4複習
2.模擬接雞蛋
float[] eggX=new float [100];
float[] eggY=new float [100];
boolean[] eggDie=new boolean[100];
void setup(){
  size(800,600);
  for(int i=0;i<100;i++){
    eggX[i]=random(100,700);
    eggY[i]=-random(2000);
    eggDie[i]=false;
  }
}
int score=0;
void draw(){
  background(255);
  fill(255);rect(mouseX-50,mouseY-25,100,50);
  for(int i=0;i<100;i++){
    if(eggDie[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){
      eggDie[i]=true;
      score+=100;
    }
  }
  fill(255,0,0);textSize(80);text("Score:"+score,100,100);
}

Week05_黃惠嘉

🔺程式


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



float[] eggX=new float [100];
float[] eggY=new float [100];
boolean[] eggDie=new boolean[100];
void setup(){
  size(800,600);
  for(int i=0;i<100;i++){
    eggX[i]=random(100,700);
    eggY[i]=-random(2000);
    eggDie[i]=false;
  }
}
void draw(){
  background(255);
  rect(mouseX-50,mouseY-25,100,50);
  for(int i=0;i<100;i++){
    if(eggDie[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)
    eggDie[i]=true;
  }
}

float[] eggX=new float [100];
float[] eggY=new float [100];
boolean[] eggDie=new boolean[100];
void setup(){
  size(800,600);
  for(int i=0;i<100;i++){
    eggX[i]=random(100,700);
    eggY[i]=-random(2000);
    eggDie[i]=false;
  }
}
int score=0;
void draw(){
  background(255);
  fill(255);
  rect(mouseX-50,mouseY-25,100,50);
  for(int i=0;i<100;i++){
    if(eggDie[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){
      eggDie[i]=true;
      score+=100;
    }
  }
  fill(255,0,0);
  textSize(80);
  text("Score:"+score,100,100);
}

PImage [] imgN=new PImage[10];
float[] eggX=new float [100];
float[] eggY=new float [100];
boolean[] eggDie=new boolean[100];
void setup(){
  size(800,600);
  for(int i=0;i<=9;i++)imgN[i]=loadImage(i+".jpg");
  for(int i=0;i<100;i++){
    eggX[i]=random(100,700);
    eggY[i]=-random(2000);
    eggDie[i]=false;
  }
}
int score=0;
void draw(){
  background(255);
  fill(255);
  rect(mouseX-50,mouseY-25,100,50);
  for(int i=0;i<100;i++){
    if(eggDie[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){
      eggDie[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)],800-i*100,100,100,150);
    now/=10;
  }
}


PImage img;
float cherryX=0,cherryY=700;
float cherryVX=6,cherryVY=-40;
void setup(){
  size(800,600);
  img=loadImage("cherry.png");
}
void draw(){
  background(255);
  image(img,cherryX,cherryY,100,150);
  cherryX+=cherryVX;
  cherryY+=cherryVY;
  cherryVY+=0.98;
}

PImage img;
float cherryX=0,cherryY=700;
float cherryVX=6,cherryVY=-40;
void setup(){
  size(800,600);
  img=loadImage("cherry.png");
  for(int i=0;i<10;i++) sword[i]=new PVector();
}
PVector [] sword =new PVector[10] ;
void draw(){
  background(255);
  image(img,cherryX,cherryY,100,150);
  cherryX+=cherryVX;
  cherryY+=cherryVY;
  cherryVY+=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);
  }
}


PImage []img=new PImage[8];
float []cherryX=new float [8];
float []cherryY=new float [8];
float []cherryVX=new float [8];
float []cherryVY=new float [8];
void cherryReborn(int i){
  cherryX[i]=random(800);
  cherryVX[i]=700;
  cherryY[i]=random(8)-4;
  cherryVY[i]=-40;
}
void setup(){
  size(800,600);
  for(int i=0;i<8;i++) img[i]=loadImage("cherry.png");
  for(int i=0;i<8;i++) cherryReborn(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],cherryX[i],cherryY[i],100,150);
    cherryX[i]+=cherryVX;
    cherryY[i]+=cherryVY;
    cherryVY[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);
  }
}


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



week5

讓雞蛋掉下來

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

接雞蛋

float[] eggX=new float[100];float[] eggY=new float[100];                          
boolean[] eggDie=new boolean[100];
void setup(){  size(800,600);  
for(int i=0;i<100;i++){
    eggX[i]=random(100,700);
    eggY[i]=-random(2000);
               eggDie[i]=false;  }
}
void draw(){
  background(255);
  rect(mouseX-50, mouseY-25,100,50);
  for(int i=0;i<100;i++){//for all eggs
    if(eggDie[i])continue;//continue to for loop
    ellipse(eggX[i], eggY[i],80,100);
    eggY[i]+=5; 
   if(eggY[i]>700) eggY[i]=-2000+600;
    if(dist(mouseX-50,mouseY-25,eggX[i],eggY[i])<50){
                        eggDie[i]=true;  }
}
}

水果忍者

PImage img;//讀圖檔
float appleX=0, appleY=700;//lower-left
float appleVX=6,appleVY=-40;//to right-top
void setup(){
  size(800,600);
  img=loadImage("apple.png");
}
void draw(){
  background(255);
  image(img,appleX,appleY,100,150);
  appleX +=appleVX;
  appleY +=appleVY;
  appleVY+=0.98;//gravity of earth
}

加上刀

PImage img;
float appleX=0, appleY=700;//lower-left
float appleVX=6,appleVY=-40;//to right-top
void setup(){
  size(800,600);
  img=loadImage("apple.png");
   for(int i=0;i<10;i++) sword[i]=new PVector();
}
PVector [] sword= new PVector[10];

void draw(){
  background(255);
  image(img,appleX,appleY,100,150);
  appleX +=appleVX;
  appleY +=appleVY;
  appleVY+=0.98;//gravity of earth
  
   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;//Update sword[0] to newest mouse
 for(int i=1;i<10;i++){
   line(sword[i].x, sword[i].y, sword[i-1].x, sword[i-1].y);
 }
}



Week05 呆江的筆記

Week05小遊戲示範

1.接雞蛋

\

運作邏輯:


先建立數字圖片的陣列、還有雞蛋座標和變成分數的雞蛋的陣列
在setup()裡先設定視窗大小、讀圖片、雞蛋出現位置(隨機)與雞蛋存活(false)

在draw()之前,先建立一個變數去計算等等的成績(score)並先歸零


在draw()裡面,一開始一定要清背景(不然背景之後會很亂很醜)

並建立一個接雞蛋的方塊
使用for() loop去判斷雞蛋的存活、位移、與分數

之後使用一個變數去儲存score的值(now)

再透過for() loop去計算、顯示當前分數

在100分的時候,遊戲就會結束

程式碼:


PImage[] imgN=new PImage[10];
PImage imgegg;
float[] eggX=new float[100];
float[] eggY=new float[100];
boolean[] eggDie=new boolean[100];

void setup(){

  size(800,600);
  for(int i=0;i<=9;i++)  imgN[i]=loadImage(i+".png");
   imgegg=loadImage("egg4.png");
  for(int i=0;i<100;i++){
    eggX[i]=random(0,700);
    eggY[i]=-random(0,2000);
    eggDie[i]=false;
  }
}
int score=0;
void draw(){
  background(20,20,50);
  fill(250,250,250);  rect(mouseX-55,mouseY-15,100,30);
  
  for(int i=0;i<100;i++){
    if(eggDie[i])  continue;
    image(imgegg,eggX[i],eggY[i],90,120);
    eggY[i]+=5;
    if(eggY[i]>700)  eggY[i]=-2000+600;
    if(dist(mouseX,mouseY,eggX[i],eggY[i])<100){
      eggDie[i]=true;
      score+=10;
    }
    
  }
  int now=score;
  for(int i=0;i<5;i++){
    image(imgN[now%10],800-i*50,20,50,100);
    now/=10;
  }
}

2.接雞蛋改良版(可以一直執行)



運作邏輯:

沿用上面的程式邏輯,但如果eggDie[i]是true的時候,會重置X、Y的位置,並在把eggDie[i]的值更改成false

程式碼:

PImage[] imgN=new PImage[10];
PImage imgegg;
float[] eggX=new float[100];
float[] eggY=new float[100];
boolean[] eggDie=new boolean[100];

void setup(){

  size(800,600);
  for(int i=0;i<=9;i++)  imgN[i]=loadImage(i+".png");
   imgegg=loadImage("egg4.png");
  for(int i=0;i<100;i++){
    eggX[i]=random(0,700);
    eggY[i]=-random(0,2000);
    eggDie[i]=false;
  }
}
int score=0;
void draw(){
  background(20,20,50);
  fill(250,250,250);  rect(mouseX-55,mouseY-15,100,30);
  
  for(int i=0;i<100;i++){
    
    image(imgegg,eggX[i],eggY[i],90,120);
    eggY[i]+=5;
    if(eggY[i]>700)  eggY[i]=-2000+600;
    if(dist(mouseX,mouseY,eggX[i],eggY[i])<100){
      eggDie[i]=true;
      score+=10;
    }
#############################
    if(eggDie[i]==true){
      eggX[i]=random(0,700);
      eggY[i]=-2000;
      eggDie[i]=false;
    }
#############################
  }
  
  int now=score;
  for(int i=0;i<5;i++){
    image(imgN[now%10],800-i*50,20,50,100);
    now/=10;
  }
}