2022年1月3日 星期一

鴨力山大week11(期末作品第一步)


期末作品要做豆腐女孩!!!!

以下是這周程式碼的進度,還沒有辦法成功跳上去豆腐也很不聽話

PImage img1;
float []tofuX=new float[100];
int n=0;//豆腐數量
int tofuDir=0;//豆腐方向1 -1
int tofuH=0;
int state=0;//0是不會動,1是豆腐移動,2是豆腐停止且往下降
int t=0;
float gx=203,gy=370,vx=0,vy=0;
boolean jumping=false;
void setup(){
  size(400,600);
  img1=loadImage("bgg.JPG");
  //for(int i=0;i<100;i++) tofuX[i] = random(100,200);
}
void draw(){
  image(img1,0,0,400,600);
  fill(#D7DCE0);
  rect(142,400+tofuH,125,65);//底座
  for(int i=0;i<n;i++){
    rect(tofuX[i],335-i*65+tofuH,125,65);
  }
  if(state==1){//移動豆腐的程式碼
    tofuX[n-1]+=tofuDir;
  }else if(state==2){
    if(t>0){
      tofuH++;t--;
    }else state=3;
  }
  fill(#88BDD8);ellipse(gx,gy,60,60);
  if(jumping){
    gx += vx; gy += vy; vy += 0.98;//重力
    if(gy>370){
      gy=370;jumping=false;
    }
    if(n>0)
    {
      float tofuY=335-(n-1)*65+tofuH;
      if( tofuX[n-1]<gx && gx<tofuX[n-1]+125 && tofuY<gy && gy<tofuY+65 ){//夾在中間
        if(state!=2) changeState();
      }
    } 
  }
  
  
}
void mousePressed(){
    jumping=true;
    vy=-16;
}
void keyPressed(){
  changeState();
}
void changeState(){
  state= (state+1)%3;
  if(state==0){
  
  }else if(state==1){
    tofuDir=int(random(2));//0,1
    if(tofuDir==0) tofuDir=-1;
    //假設random取出數是0,因為方向是1跟-1,所以要將0變成-1
    n++;
    if(tofuDir==1) tofuX[n-1]=-125;//最左邊
    if(tofuDir==-1) tofuX[n-1]=400;//最右邊
    
  }else if(state==2){
    t=65 ;
  }
  
}


 

沒有留言:

張貼留言