2016年9月19日 星期一

Week 03 魏珩

作業一:

pokemon ball

1.先下載一張沒有背景的pokemon ball,
把圖放進檔案裡面

程式碼:
PImage img;
void setup(){
  size(600,800);
  img=loadImage("pokeball.png");
  imageMode(CENTER);

}
void draw(){
  background(255);
  image(img,mouseX,mouseY,100,100); //滑鼠在圖片正中心
}













2.再下載一隻目標物,接下來使球可以滑出去

程式碼:
PImage imgBall, imggan;
float ballX=300, ballY=400, ganX=300, ganY=200;
float ballVX=0,ballVY=0;
void setup(){
  size(600,800);
  imgBall=loadImage("pokeball.png");
  imggan=loadImage("Pokemon94.png");
  imageMode(CENTER);

}
void draw(){
  background(255);
  image(imggan,ganX,ganY,100,100);
  image(imgBall,ballX,ballY,100,100);
  ballX+=ballVX/2.0; ballY+=ballVY/2.0;
}
void mouseMoved(){
  if(mouseY<height*2/3 && ballVY==0){
  ballVX=mouseX-pmouseX;
  ballVY=mouseY-pmouseY;
  }else if(mouseY>height*2/3){
    ballX=mouseX; ballY=mouseY;
    ballVX=0;ballVY=0;
  }
}














3.使滑出去的球呈現拋物線
程式碼:
PImage imgBall, imggan;
float ballX=300, ballY=400, ganX=300, ganY=200;
float ballVX=0,ballVY=0;
boolean bFly=false;
void setup(){
  size(600,800);
  imgBall=loadImage("pokeball.png");
  imggan=loadImage("Pokemon94.png");
  imageMode(CENTER);

}
void draw(){
  background(255);
  image(imggan,ganX,ganY,200,200);
  image(imgBall,ballX,ballY,100,100);
  if(bFly){
    ballX+=ballVX/2.0;
    ballY+=ballVY/2.0;
    ballVY+=0.98;
  }
  
}
void mouseMoved(){
  if(mouseY<height*2/3 && bFly==false){
  ballVX=mouseX-pmouseX;
  ballVY=mouseY-pmouseY;
  bFly=true;
  }else if(mouseY>height*2/3){
    ballX=mouseX; ballY=mouseY;
    ballVX=0;ballVY=0;
    bFly=false;
  }
}













4.使球在拋出去後可以縮小,更加逼真
程式碼:
PImage imgBall, imggan;
float ballX=300, ballY=400,ballZscale=1.0 ,ganX=300, ganY=200;
float ballVX=0,ballVY=0;
boolean bFly=false;
void setup(){
  size(600,800);
  imgBall=loadImage("pokeball.png");
  imggan=loadImage("Pokemon94.png");
  imageMode(CENTER);

}
void draw(){
  background(255);
  image(imggan,ganX,ganY,200,200);
  image(imgBall,ballX,ballY,100/ballZscale,100/ballZscale);
  if(bFly){
    ballX+=ballVX/2.0;
    ballY+=ballVY/2.0;
    ballVY+=0.98;
    ballZscale +=0.03;
  }
  
}
void mouseMoved(){
  if(mouseY<height*2/3 && bFly==false){
  ballVX=mouseX-pmouseX;
  ballVY=mouseY-pmouseY;
  bFly=true;
  }else if(mouseY>height*2/3){
    ballX=mouseX; ballY=mouseY;
    ballVX=0;ballVY=0;
    bFly=false;
    ballZscale=1.0; //還原成原來大小
  }
}



沒有留言:

張貼留言