2022年1月16日 星期日

WEEK??-阿噗的神奇小筆記(終於完成辣!!)

     

期末作業結束啦6


💓💙💚💛💜💓💙💚💛💜💓💙💚💛💜💓💙💚💛💜💓💙💚💛💜💓💙💚💛💜💓💙

😎做完打蟑螂了!!耶依依
🙆拜託這次依然都讓我ALL PASS吧!!
💚肺炎又開始燃燒了...希望快快消滅阿

-------------------------------------------------------------------------------------------------------------------------

1.我們歷經千辛萬苦,終於把這個小遊戲給做出來了!!
2.灑花兒~~🌼🌼🌼🌼🌼
3.這次修了許多細節,如文字置中、為什麼時間第二次變少、觸碰的感應程度等等。

-這次不用醜醜蟑螂了,來個我們的封面


💩!開始解說我們的辛苦結晶!💩
-------------------------------------------------------------------------------------------------------------------------


全部程式碼如下:



float x,y,x0,y0,x1,y1,x2,y2,x3,y3,x4,y4,vx,vy,vx0,vy0,vx1,vy1,vx2,vy2,vx3,vy3,vx4,vy4;
int score=0,a,b,c,count=1200;
int condition;//情況R
int music;
PFont myFont;
PImage img0,img1,img2,img3,img4,img14,img5,img6,img7,img8,img9,img10,img11,img12,img13;
import ddf.minim.*;
Minim minim;
AudioPlayer player,player2;


void setup(){
  minim = new Minim(this);
  player=minim.loadFile("BGM.mp3");
  player2=minim.loadFile("hit.mp3");
  size(800,600);
  img0=loadImage("封面.png");
  img1=loadImage("start.png");//讀入圖片
  img2=loadImage("RANKING.png");
  img3=loadImage("內容.png");//背景圖片
  img4=loadImage("Cockroach.png");//小蟑螂
  img12=loadImage("Cockroach-2.png");//中蟑螂
  img14=loadImage("Cockroach-3.png");//大蟑螂
  img5=loadImage("restart.png");//返回鍵
  img6=loadImage("分數版.png");
  img7=loadImage("拖鞋.png");
  img8=loadImage("結束.png");
  img9=loadImage("return.png");
  img10=loadImage("Cockroach1.png");
  img11=loadImage("Cockroach1-2.png");
  img13=loadImage("cursor.png");
  generateCockroach();//小蟑螂
  generateCockroach0();//小蟑螂
  generateCockroach1();//中蟑螂 
  generateCockroach2();//中蟑螂
  generateCockroach3();//中蟑螂
  generateCockroach4();//大蟑螂
  
  fill(255,0,0);
  textSize(80);
  myFont = createFont("微軟正黑體",30);///中文輸入法程式碼

}
void mousePressed() {///場景切換
    if(condition==0){//主畫面
    frameCount=0;
        if (mouseButton == LEFT&&dist(470,470, mouseX, mouseY)<65){  // 切換到開始遊戲介面
        condition=1;       
       }
          if(mouseButton == LEFT&&dist(600,450, mouseX, mouseY)<50){
          condition=3;
         }
      }
     if(condition==1){//遊戲畫面  
        player.play();     

        if(mouseButton==LEFT){
          player2.play();
          player2.rewind();
        }
        if(mouseButton==LEFT&& dist(650,450,mouseX-100,mouseY-100)<50){
        condition=0;//返回鍵
        score=0;
        count=1200;
        }
      }
    if(condition==2){//結束畫面
      if (mouseButton == LEFT&&dist(700,550, mouseX, mouseY)<50){// 切換到開始遊戲介面
          condition=0;
        } 
    }
    if(condition==3){//計分畫面
      if(mouseButton==LEFT&& dist(700,520,mouseX,mouseY)<50) {  // 切換到開始遊戲介面
          condition=0;
      } 
     }
    }
void draw(){
    noCursor();
    if(condition==0){
    image(img0,0,0,800,600);
    image(img1,400,410,100,100);
    image(img2,560,410,100,100);
    image(img7,mouseX-30,mouseY-30,50,80);
    player.pause();
    player.rewind();

  }
  if(condition==1){//condition=1且時間>0=遊戲介面 
    image(img3,0,0,800,600);//背景圖片
    image(img4,x,y,80,80);//小蟑螂圖片  
    image(img10,x1,y1,80,80);//小蟑螂圖片
    image(img11,x0,y0,80,80);//小蟑螂圖片
    image(img5,705,505,88,88);//重製鍵圖片
    x+=vx;y+=vy;//若超過左邊界、右邊界,則會隨機產生一般蟑螂。
    x0+=vx0;y0+=vy0;
    x1+=vx1;y1+=vy1;
    x2+=vx2;y2+=vy2;
    x3+=vx3;y3+=vy3;
    x4+=vx4;y4+=vy4;
    if(frameCount%20==0){//每一秒,改一次角度
      float angle = atan2(vy,vx);float angle2=(angle+radians(random(-20,20)));//時間到就轉30度。
      float angle0 = atan2(vy0,vx0);float angle3=(angle0+radians(random(-90,60)));//時間到就轉30度。   
      float angle1 = atan2(vy3,vx3);float angle4=(angle1+radians(random(-120,60)));//特別蟑螂
      float angle5 = atan2(vy4,vx4);float angle6=(angle5+radians(random(-270,120)));//特別蟑螂
      vx =cos(angle2);vy =sin(angle2);//小蟑螂
      vx0=cos(angle3);vy0=sin(angle3);//小蟑螂
      vx1=cos(angle2);vy1=sin(angle2);//小蟑螂
      vx2=sin(angle2);vy2=cos(angle2);//中蟑螂
      vx3=sin(angle4);vy3=cos(angle4);//中蟑螂
      vx4=sin(angle5);vy4=cos(angle5);//大蟑螂
      }     
      if(x<0 || y<0||x>600||y>400)generateCockroach();//不管邊界x,y<0或x,y>500,都會產生新的蟑螂。   
      if(mousePressed && dist(mouseX-40,mouseY-40,x,y)<60){
      generateCockroach();//死後產生新的蟑螂。
      score+=10;
     }//小蟑螂
     if(x0<0 || y0<0||x0>600||y0>400)generateCockroach0();//不管邊界x,y<0或x,y>500,都會產生新的蟑螂。   
      if(mousePressed && dist(mouseX-40,mouseY-40,x0,y0)<60){
      generateCockroach0();//死後產生新的蟑螂。
      score+=10;
     }//小蟑螂
     if(x1<0 || y1<0||x1>600||y1>400)generateCockroach1();//不管邊界x,y<0或x,y>500,都會產生新的蟑螂。   
     if(mousePressed && dist(mouseX-40,mouseY-40,x1,y1)<60){
      generateCockroach1();//死後產生新的蟑螂。
      score+=10;
     }//小蟑螂
    
      if(frameCount>180&&frameCount<600){
      image(img12,x2,y2,120,120);//中蟑螂圖片
      if(x2<0 || y2<0||x2>680||y2>500)generateCockroach2();//不管邊界x,y<0或x,y>500,都會產生新的蟑螂。
      if(mousePressed && dist(mouseX-50,mouseY-50,x2,y2)<60){
        generateCockroach2();
        score+=20;
        }     
      }//中蟑螂 
      if(frameCount>180&&frameCount<720||frameCount>900&&frameCount<1080){
      image(img12,x3,y3,120,120);//中蟑螂圖片
      if(x3<0 || y3<0||x3>680||y3>500)generateCockroach3();//不管邊界x,y<0或x,y>500,都會產生新的蟑螂。
      if(mousePressed && dist(mouseX-50,mouseY-50,x3,y3)<60){
        generateCockroach3();
        score+=20;
        }     
      }//大蟑螂 
      if(frameCount>600&&frameCount<1020){//第10秒出現,第3秒消失
      image(img14,x4,y4,200,200);//大蟑螂圖片
      if(x4<0 || y4<0||x4>700||y4>500)generateCockroach4();//不管邊界x,y<0或x,y>500,都會產生新的蟑螂。
      if(mousePressed && dist(mouseX-130,mouseY-130,x4,y4)<130){
        generateCockroach4();
        score+=50;
        }     
      }//大蟑螂
      
      
      image(img7,mouseX-30,mouseY-30,50,80);//產生藍白拖。
    
      textFont(myFont);
      textAlign(CENTER);text("Score:"+score,480,45); 
      fill(255,255,255);
      textSize(32);
      text("Time:" +int(count/60)+"秒",300,45); ///計時器。
      count--;
     
      if(count<=0){
        condition=2;//結束介面
        count+=1200;
        c=score;
        if(score>a){
          b=a;
          a=score;
        }
         if(score<a&&score>b){
           b=score;
         }
        score=0;
        
      } 
  }
       if(condition==2){//結束畫面
       background(186,85,211);
       image(img2,10,5,500,500);
       image(img8,0,0,800,600);
       textFont(myFont,80);
       textAlign(CENTER);text(+c,390,260);
       player.pause();//音樂停止
       player.rewind();//從頭播放
       image(img7,mouseX-30,mouseY-30,50,80);
      }
      
      if(condition==3){
        image(img6,0,0,800,600);//分數版
        image(img9,650,500,100,100);//返回建
        image(img7,mouseX-30,mouseY-30,50,80);
        textFont(myFont,44);
        fill(255,255,255);
        textAlign(CENTER);text(+a,415,260);
        textFont(myFont,44);
        textAlign(CENTER);text(+b,415,450);
      }
      
}

void generateCockroach(){//一般的蟑螂
  int edge=int (random(4));//4個邊
  if(edge==0){
    x=600;y=random(300);vx=-random(1,3);vy=random(-3,+3);
  }else if(edge==1){
    x=random(300);y=400;vx=-random(-3,3);vy=random(1,3);
  }else if(edge==2){
    x=0;y=random(300);vx=random(1,3);vy=random(-3,+3);
  }else if(edge==3){
    x=random(300);y=0;vx=random(-3,3);vy=random(1,3);
  }
}
void generateCockroach0(){//一般的蟑螂
  int edge0=int (random(4));//4個邊
  if(edge0==0){
    x0=600;y0=random(300);vx0=-random(1,3);vy0=random(-3,+3);
  }else if(edge0==1){
    x0=random(300);y0=400;vx0=-random(-3,3);vy0=random(1,3);
  }else if(edge0==2){
    x=0;y=random(300);vx0=random(1,3);vy0=random(-3,+3);
  }else if(edge0==3){
    x0=random(300);y=0;vx0=random(-3,3);vy0=random(1,3);
  }
}
void generateCockroach1(){//一般的蟑螂
  int edge1=int (random(4));//4個邊
  if(edge1==0){
    x1=300;y1=random(300);vx1=-random(1,3);vy1=random(-3,+3);
  }else if(edge1==1){
    x1=random(300);y1=300;vx1=-random(-3,3);vy1=random(1,3);
  }else if(edge1==2){
    x1=0;y1=random(300);vx1=random(1,3);vy1=random(-3,+3);
  }else if(edge1==3){
    x1=random(300);y1=0;vx1=random(-3,3);vy1=random(1,3);
  }
}
  void generateCockroach2(){///特別的蟑螂
    int edge2=int (random(4));//4個邊
    if(edge2==0){
    x2=600;y2=random(300);vx2=-random(1,3);vy2=random(-3,+3);
    }else if(edge2==1){
      x2=random(300);y2=400;vx2=-random(-3,3);vy2=random(1,3);
    }else if(edge2==2){
      x2=0;y2=random(300);vx2=random(1,3);vy2=random(-3,+3);
    }else if(edge2==3){
      x2=random(300);y2=0;vx2=random(-3,3);vy2=random(1,3);
    }
  }
    void generateCockroach3(){
    int edge3=int (random(4));//4個邊
    if(edge3==0){
    x3=600;y3=random(300);vx3=-random(1,3);vy3=random(-3,+3);
    }else if(edge3==1){
      x3=random(300);y3=400;vx3=-random(-3,3);vy3=random(1,3);
    }else if(edge3==2){
      x3=0;y3=random(300);vx3=random(1,3);vy3=random(-3,+3);
    }else if(edge3==3){
      x3=random(300);y3=0;vx3=random(-3,3);vy3=random(1,3);
    }
  }
    void generateCockroach4(){
    int edge4=int (random(4));//4個邊
    if(edge4==0){
    x4=600;y4=random(300);vx4=-random(1,3);vy4=random(-3,+3);
    }else if(edge4==1){
      x4=random(300);y4=400;vx4=-random(-3,3);vy4=random(1,3);
    }else if(edge4==2){
      x4=0;y4=random(300);vx4=random(1,3);vy4=random(-3,+3);
    }else if(edge4==3){
      x4=random(300);y4=0;vx4=random(-3,3);vy4=random(1,3);
    }
}
-------------------------------------------------------------------------------------------------------------------------
🍉來介紹我們的最終畫面:



🌸我們的DEMO畫面: (YT)🌸


封面:

首先最重要的就是我們的封面辣!!
標題為,重生拉機推,卻是藍白拖
意思是,蟑螂好不容易重生到了拉機堆,卻又要再一次被藍白拖消滅。
首頁有開始鈕及排名鈕。

遊戲畫面:

畫面為拉機堆,有垃圾桶及許多大小拉機
周圍還有蜘蛛網,蚊蟲亂飛,小螞蟻們經過。
配上黃昏般的燈光,使畫面在真實一點。




成績顯示畫面:

時間到後,成績會顯示在上面。
下面還有123隻蟑螂,超口愛!!💓


排行榜:

此為排行榜,有最高分及第二高的分數。
如果成績比較高,就會蓋掉比它小的分數。


💚💛💙此為最口愛的三主角。




最後打了快300行的程式碼
做遊戲的時候,弟弟都會在一旁看
然後玩我們做的遊戲
💛特別口愛,好喜歡💛


---------------------------------------------------------------------------------------------------------------------------
我要感謝我滴搭檔,陳柏勻先生。
他在這份作業裡,做了許多,程式大部分都是他寫的。
而我只是畫了畫,讓這個介面變得更完美。
因為他,才做出了這麼滿意的小遊戲。💓

沒有留言:

張貼留言