今天接續上次的憤怒鳥進度。首先先能夠讓他能夠拉來拉去,而且讓她不要剛著滑鼠跑,而且讓她只有在碰到滑鼠的時候才會有反應
程式碼:
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;
}
}


沒有留言:
張貼留言