2020年5月22日 星期五

week13

今天接續上次的憤怒鳥進度。首先先能夠讓他能夠拉來拉去,而且讓她不要剛著滑鼠跑,而且讓她只有在碰到滑鼠的時候才會有反應
程式碼:
PImage imgBird;
void setup(){
  size(500,400);
  imgBird=loadImage("bird.png");
  imageMode(CENTER);
}
float birdX=100,birdY=300,oldX,oldY;
boolean bMoving=false;
void draw(){
  background(255);
  image(imgBird,birdX,birdY,100,100);
  if(bMoving) line(mouseX,mouseY,oldX,oldY);
}
void mousePressed(){
  if(dist(mouseX,mouseY,birdX,birdY)<50){
   bMoving=true;
   oldX=birdX; oldY=birdY;
  }
}
void mouseDragged(){
  if(bMoving){
    birdX=mouseX; birdY=mouseY;
  }
}
接著我們要讓憤怒鳥能夠發射出去,而且在碰到牆壁之後要能夠反彈
程式碼:
PImage imgBird;
void setup(){
  size(500,400);
  imgBird=loadImage("bird.png");
  imageMode(CENTER);
}
float birdX=100,birdY=300,oldX,oldY,vx=0,vy=0;
boolean bMoving=false;
void draw(){
  background(255);
  image(imgBird,birdX,birdY,100,100);
  if(bMoving) line(mouseX,mouseY,oldX,oldY);
  birdX+=vx; birdY+=vy;
  if(birdX>500-50||birdX<50)vx=-vx;
  if(birdY>400-50||birdY<50)vy=-vy;
}
void mouseReleased(){
  bMoving=false;
  vx=(oldX-mouseX)/10; vy=(oldY-mouseY)/10;
}
void mousePressed(){
  if(dist(mouseX,mouseY,birdX,birdY)<50){
   bMoving=true;
   oldX=birdX; oldY=birdY;
  }
}
void mouseDragged(){
  if(bMoving){
    birdX=mouseX; birdY=mouseY;
  }
}

沒有留言:

張貼留言