2022年1月17日 星期一

豆腐女孩第二天

 

女孩的圖片
第二天我們加上女孩在上面彈跳

PImage img1;
float x=203,y=370,vx=0,vy=0;//女孩
boolean jumping=false;
float []tofuX=new float[100];
float []tofuVX=new float[100];
int n=1;//豆腐數量
int state=0;//0是不會動,1是豆腐移動,2是豆腐停止且往下降
int tofuH=0;
int t=0;

void setup(){
  size(400,600);
  img1=loadImage("bgg.JPG");
  tofuX[0]=140;//豆腐剛開始的位子
  generateTofu();
}
void draw(){
  image(img1,0,0,400,600);
  for(int i=0;i<n;i++)
  {
    rect(tofuX[i],400-i*65+tofuH,125,65);
  }
  if(state==1){
    if(t>0){
      tofuH++;t--;
    }else{
      state=0;
      
    }
  }
  tofuX[n-1]+=tofuVX[n-1];
  if(!jumping && tofuVX[n-1]!=0 && tofuX[n-1]<x+30 && x-30<tofuX[n-1]+125){
    background(255,0,0);
  }
  ellipse(x,y+tofuH,60,60);
  if(jumping){
    if(vy>0 && tofuX[n-1]<x && x<tofuX[n-1]+125 && y+33<400-(n-1)*65 && y+33+vy>400-(n-1)*65){
      jumping=false; vy=0; y=400-(n-1)*65-30;
      screenroll();
      generateTofu();
    }else{
      y+=vy;
      vy+=0.98;
    }
  }
}
void mousePressed(){
  if(!jumping){  
    jumping=true;
    vy=-24;
  }
}
void keyPressed(){
  generateTofu();
}
void generateTofu(){
  int dir=int(random(2));//0=左邊,1=右邊
  n++;
  if(dir==0){
    tofuX[n-1]=400;
    tofuVX[n-1]=-2;
  }else{
    tofuX[n-1]=-125;
    tofuVX[n-1]=2;
  }
}
void screenroll(){
  state= (state+1)%3;
  if(state==0){
   
  }else if(state==1){
    t=65;
  }
}

沒有留言:

張貼留言