2021年12月27日 星期一

week12-哭啊轉守為攻

解決跳上平台及掉下去問題
教學:

int []boardX={300, 400};//
int []boardY={100, 50}; 
int []boardW={800, 300};
void setup() {
  size(500, 300);
}
float x=30, y=150, vx=3, vy=0; 
float scrolling=0; 
boolean jumping=false, onBoard=false; 
int boardID=0;// 
void draw(){
  background(#162390);
  line(0, 200, 500, 200); 
  rect(x-scrolling, y, 50, 50); 
  x += vx; 
  if(jumping) {
    y += vy; 
    vy += 0.98; 
    if(y>150){
      y=150; vy=0; jumping=false;
    }
  }
  
  scrolling=(x-30); 
  for(int i=0; i <2; i++){
    rect(boardX[i]-scrolling, boardY[i], boardW[i], 20); 
    if (boardID==i){
      if (onBoard==true && (boardX[i]+boardW[i] < x)){
        onBoard=false; jumping=true;
       }
    }
    if( jumping && y+50<boardY[i] && y+50+vy>boardY[i] && boardX[i]<x+50 && x <boardX[i]+boardW[i] ){
      y=boardY[i]-50; vy=0; jumping=false; onBoard=true; boardID=i;
     }
   }
}

void keyPressed(){ 
  if(keyCode==UP) {
    jumping=true; 
    vy=-15;
  }
}


    

  

沒有留言:

張貼留言