2022年1月17日 星期一

期末最終成果

 我們的期末作業終於完成了,以下為程式碼

PImage img1,img2,img3,img4,img5,img6,img7,img8,img9,img10,img11,img12,img13,img14,img15,img16,img17,img18,img19,img20,img21,img22,img23,img24,img25,img26,img27,img28,img29,img30;

int remainT=0,state=0,score=0, i=0,now=0;

int []vegaAge={-1,-1,-1,-1};

void setup()

{

  size(500,700);

  img1=loadImage("background1.PNG");

  img2=loadImage("background2.PNG");

  img3=loadImage("background3.PNG");

  img4=loadImage("background4.PNG");

  img5=loadImage("background5.PNG");

  img6=loadImage("squirrel1.PNG");

  img7=loadImage("squirrel2.PNG");

  img8=loadImage("squirrel3.PNG");

  img9=loadImage("squirrel4.PNG");

  img10=loadImage("squirrel5.PNG");

  img11=loadImage("squirrel6.PNG");

  img12=loadImage("squirrel7.PNG");

  img13=loadImage("veg.PNG");

  img14=loadImage("letter.png");

  img15=loadImage("trip.png");

  img16=loadImage("white.png");

  img17=loadImage("back.png");

  img18=loadImage("vege1.png");

  img19=loadImage("vege2.png");

  img20=loadImage("vege3.png");

  img21=loadImage("vege4.png");

  img22=loadImage("vege5.png");

  img23=loadImage("garden.png");

  img24=loadImage("backk.png");

  img25=loadImage("travel.png");

  img26=loadImage("minus.png");

  img27=loadImage("plus.png");

  img28=loadImage("yes.png");

  img29=loadImage("home.png");

  img30=loadImage("222.png");

}


void draw()

{

  if(state==0)//首頁

  {

    if(remainT>=0)//用來做動畫

   {

      remainT++;

      if(remainT<10){image(img1,0,0,500,700);image(img6,100,450,500,350);}

      else if(remainT>10&&remainT<20){image(img2,0,0,500,700);image(img6,100,450,500,350);}

      else if(remainT>20&&remainT<30){image(img3,0,0,500,700);image(img7,100,450,500,350);}

      else if(remainT>30&&remainT<40){image(img4,0,0,500,700);image(img8,100,450,500,350);}

      else if(remainT>40&&remainT<50){image(img5,0,0,500,700);image(img9,100,450,500,350);}

      else if(remainT>50&&remainT<60){image(img1,0,0,500,700);image(img10,100,450,500,350);}

      else if(remainT>60&&remainT<70){image(img1,0,0,500,700);image(img11,100,450,500,350);}

      else if(remainT>70&&remainT<80){image(img1,0,0,500,700);image(img12,100,450,500,350);}

      else if(remainT>80)

      {

        remainT=0;

      }

    }

    image(img13,0,0,120,120);

    image(img15,120,0,120,120);

   }

   else if(state==1)//菜園

   {

      image(img23,0,0,500,700);

      image(img24,0,0,120,120);

      fill(0); textSize(80); image(img19,250,80,100,100);text(":"+score , 350, 150);  

      for(int i=0; i<4; i++){    

        if(vegaAge[i]<0){ image(img20,100+i*100, 500, 10,10);}//empty

        else if(vegaAge[i]<10){ image(img18, 50+i*100, 410, 150,150);}

        else if(vegaAge[i]<20){ image(img19, 50+i*100, 410, 150,150);}

        else  { image(img22, 50+i*100, 410, 150,150);}

        if(frameCount%6==0 && vegaAge[i]>=0) vegaAge[i]++; // 0,1,2.... 60=1秒

       }

   }

   else if(state==2)

   {

     image(img16,0,0,500,700);

     

   }

   else if(state==3)

   {

     image(img25,0,0,500,700);

     image(img24,0,0,120,120);

     image(img26,40,300,150,100);

     image(img27,300,300,150,100);

     image(img28,180,400,150,100);

     fill(0); textSize(100);text(i , 220, 390);

     image(img19,300,20,100,100);

      fill(0); textSize(100);text(":"+now , 400, 100);

   }

   else if(state==4)

   {

     image(img1,0,0,500,700);

     if(remainT>=0)

   {

      remainT++;

      if(remainT<10){image(img1,0,0,500,700);}

      else if(remainT>10&&remainT<20){image(img2,0,0,500,700);}

      else if(remainT>20&&remainT<30){image(img3,0,0,500,700);}

      else if(remainT>30&&remainT<40){image(img4,0,0,500,700);}

      else if(remainT>40&&remainT<50){image(img5,0,0,500,700);}

      else if(remainT>50&&remainT<60){image(img1,0,0,500,700);}

      else if(remainT>60&&remainT<70){image(img1,0,0,500,700);}

      else if(remainT>70&&remainT<80){image(img1,0,0,500,700);}

      else if(remainT>80)

      {

        remainT=0;

      }

    }

    image(img13,0,0,120,120);

    image(img29,120,0,120,120);

   }

   else if(state==5)

   {

     image(img23,0,0,500,700);

      image(img24,0,0,120,120);

      fill(0); textSize(80); image(img19,250,80,100,100);text(":"+score , 350, 150);  

      for(int i=0; i<4; i++){    

        if(vegaAge[i]<0){ image(img20,100+i*100, 500, 10,10);}//empty

        else if(vegaAge[i]<10){ image(img18, 50+i*100, 410, 150,150);}

        else if(vegaAge[i]<20){ image(img19, 50+i*100, 410, 150,150);}

        else  { image(img22, 50+i*100, 410, 150,150);}

        if(frameCount%6==0 && vegaAge[i]>=0) vegaAge[i]++; // 0,1,2.... 60=1秒

       }

   }

   else if(state==6)

   {

     image(img30,0,0,500,700);

     image(img28,180,400,150,100);

     image(img24,0,0,120,120);

   }

}

void mousePressed()

{

  if(state==0)

  {

    if (mouseButton == LEFT&&dist(0,0, mouseX, mouseY)<=120)

    {

      state=1;

    }

    else if (mouseButton == LEFT&&dist(120,0, mouseX, mouseY)<=120)

    {

      state=3;

      i=0;

      now=score;

    }

  }

  else if(state==1)

  {

    if(mouseButton==LEFT){

    for(int i=0; i<4; i++){//空地才能種

      if( vegaAge[i]==-1 && dist(mouseX,mouseY, 100+i*100, 500) < 30 ) vegaAge[i]=0; 

    }

  }else if(mouseButton==RIGHT){//右鍵採收

    for(int i=0; i<4; i++){

      if(dist(mouseX,mouseY, 100+i*100, 500) < 50 ){ 

        if(vegaAge[i]<0) score+=0;//空地不能收

        else if(vegaAge[i]<10) score+=0;//baby

        else if(vegaAge[i]<20) score+=1;//child

        else score+=0;//bad!! too old

        vegaAge[i]=-1; 

        now=score;

      }

    }

  }

    if (mouseButton == LEFT&&dist(0,0, mouseX, mouseY)<=120)

    {

      state=0;

    }

  }

  else if(state==3)

  {

    if (mouseButton == LEFT&&dist(115,350,mouseX, mouseY)<=25)

    {

      i--;

      now++;

      if(i<0)i=0;

      if(now>score)now=score;

    }

    else if (mouseButton == LEFT&&dist(375,350, mouseX, mouseY)<=25)

    {

      i++;

      now--;

      if(now<0)now=0;

      if(i>score)i=score;

    }

    else if (mouseButton == LEFT&&dist(0,0, mouseX, mouseY)<=120)

    {

      state=0;

    }

    else if (mouseButton == LEFT&&dist(300,400, mouseX, mouseY)<=120)

    {

      if(i==0)state=3;

      else {

        score=now;

        state=4;

      }

    }

  }

  else if(state==4)

  {

    if (mouseButton == LEFT&&dist(0,0, mouseX, mouseY)<=120)

    {

      state=5;

    }

    else if (mouseButton == LEFT&&dist(120,0, mouseX, mouseY)<=120)

    {

      state=6;

    }

  }

  else if(state==5)

  {

    if(mouseButton==LEFT){

    for(int i=0; i<4; i++){//空地才能種

      if( vegaAge[i]==-1 && dist(mouseX,mouseY, 100+i*100, 500) < 30 ) vegaAge[i]=0; 

    }

  }else if(mouseButton==RIGHT){//右鍵採收

    for(int i=0; i<4; i++){

      if(dist(mouseX,mouseY, 100+i*100, 500) < 50 ){ 

        if(vegaAge[i]<0) score+=0;//空地不能收

        else if(vegaAge[i]<10) score+=0;//baby

        else if(vegaAge[i]<20) score+=1;//child

        else score+=0;//bad!! too old

        vegaAge[i]=-1; 

        now=score;

      }

    }

  }

    if (mouseButton == LEFT&&dist(0,0, mouseX, mouseY)<=120)

    {

      state=4;

    }

  }

  else if(state==6)

  {

    if (mouseButton == LEFT&&dist(300,400, mouseX, mouseY)<=120)

    {

      state=0;

    }

    else if (mouseButton == LEFT&&dist(0,0, mouseX, mouseY)<=120)

    {

      state=4;

    }

  }

}





















作業心得:這學期我們學了很多有關Processing程式的寫法,我們的期末作業花了大約10小時來做,如果包含畫圖時間的話可能會更多,最後做出來的成果我覺得雖然還有待加強,但也是很有成就感。

沒有留言:

張貼留言