我們的期末作業終於完成了,以下為程式碼
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小時來做,如果包含畫圖時間的話可能會更多,最後做出來的成果我覺得雖然還有待加強,但也是很有成就感。



沒有留言:
張貼留言