一.用彈弓發射的憤怒鳥
程式碼:
void setup()
{
size(1680,720);
bird = loadImage("bird.png");
slingshot_0 = loadImage("slingshot_0.png");
slingshot_1 = loadImage("slingshot_1.png");
imageMode(CENTER);
}
float birdX = 195,birdY = 590,oldX,oldY,vx = 0,vy = 0,SSX = 200,SSY = 650;
boolean bMoving = false,bDropping = false;
void draw()
{
background(255);
if(bMoving) line(mouseX-15,mouseY+15,oldX+20,oldY+5);
image(slingshot_0,SSX,SSY,60,168);
image(bird,birdX,birdY,50,50);
image(slingshot_1,SSX,SSY,60,168);
if(bMoving) line(mouseX-15,mouseY+15,oldX-10,oldY);
strokeWeight(5);
birdX += vx;
birdY += vy;
//if (birdX > 1055 || birdX < 25) vx = -vx;
//if (birdY > 695 || birdY < 25) vy = -vy;
if (bDropping)
{
vy += 0.1;
if (birdY > 695)
{
vy = -vy;
vy += 1.5;
vx -= 0.25;
if (vy > 0) vy = 0;
if (vx < 0) vx = 0;
}
}
}
void mousePressed()
{
if (dist(mouseX,mouseY,birdX,birdY) < 50)
{
bMoving = true;
oldX = birdX;
oldY = birdY;
}
}
void mouseReleased()
{
bMoving = false;
bDropping = true;
if (dist(mouseX,mouseY,birdX,birdY) < 50)
{
vx = (oldX - mouseX)/8;
vy = (oldY - mouseY)/8;
}
}
void mouseDragged()
{
if (bMoving)
{
birdX = mouseX;
birdY = mouseY;
}
}
成果:
沒有留言:
張貼留言