作業一:
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; //還原成原來大小
}
}





沒有留言:
張貼留言