今天要做憤怒鳥遊戲
先在網路下載兩張 Png 檔案當作遊戲圖片
匯入圖片 並且讓 鳥可以跟著滑鼠移動
PImage imgBird, imgPig;
void setup(){
size(800,600);
imgBird=loadImage("angrybird.png");
imgPig=loadImage("pig.png");
}
void draw(){
background(255);
image(imgBird,mouseX,mouseY);
image(imgPig, 400,300);
}
設定按下滑鼠按鍵後,鳥會移到滑鼠座標
PImage imgBird, imgPig;
void setup(){
size(800,600);
imgBird=loadImage("angrybird.png");
imgPig=loadImage("pig.png");
}
float birdX=400,birdY=300;
void draw(){
background(255);
image(imgBird,birdX,birdY,80,80);
image(imgPig, 300,200);
}
void mouseDragged(){
birdX=mouseX; birdY=mouseY;
}
在鳥身上加入一個速度 (牛頓第一運動定律!!!!!!!!!)
並且加入一條線 跟著鳥 進行移動
PImage imgBird, imgPig;
void setup(){
size(800,600);
imgBird=loadImage("angrybird.png");
imgPig=loadImage("pig.png");
}
float birdX=400,birdY=300;
float birdVX=0, birdVY=0;
void draw(){
background(255);
image(imgPig, 300,200);
image(imgBird,birdX,birdY,80,80);
line(birdX,birdY,400,300);
birdX += birdVX;
birdY += birdVY;
}
void mouseDragged(){
birdX=mouseX; birdY=mouseY;
}
void mouseReleased(){
birdVX = (400-mouseX)/100.0;
birdVY = (300-mouseY)/100.0;
}
將圖片原點設定為中心
PImage imgBird, imgPig;
void setup(){
size(800,600);
imgBird=loadImage("angrybird.png");
imgPig=loadImage("pig.png");
imageMode(CENTER);
}
float birdX=400,birdY=300;
float birdVX=0, birdVY=0;
void draw(){
background(255);
image(imgPig, 400,300,100,100);
image(imgBird,birdX,birdY,80,80);
line(birdX,birdY,400,300);
birdX += birdVX;
birdY += birdVY;
}
void mouseDragged(){
birdX=mouseX; birdY=mouseY;
}
void mouseReleased(){
birdVX = (400-mouseX)/100.0;
birdVY = (300-mouseY)/100.0;
}
加上 重力加速度0.98 還有 鳥的加速度
PImage imgBird, imgPig;
void setup(){
size(800,600); // 視窗大小
imgBird=loadImage("angrybird.png"); //讀圖片
imgPig=loadImage("pig.png"); // 讀圖片
imageMode(CENTER); // 將圖片原點設為圖片的中心
}
float birdX=400,birdY=300; //鳥的 一開始的座標
float birdVX=0, birdVY=0; //鳥一開始的速度為0
float birdAX=0, birdAY=0; // 鳥一開始的加速度為0
void draw(){
background(255); //背景為白色
image(imgPig, 400,300,100,100); // 豬的圖片大小
image(imgBird,birdX,birdY,80,80); // 鳥的圖片大小
line(birdX,birdY,400,300); // 線的座標
birdX += birdVX; //鳥的位子會加到速度上
birdY += birdVY;
birdVX += birdAX //鳥的速度會加上加速度;
birdVY += birdAY;
}
void mouseDragged(){
birdX=mouseX; //滑鼠拖曳時 , 鳥會跟著滑鼠走
birdY=mouseY;
birdVX=birdVY=birdAX=birdAY=0;
}
void mouseReleased(){
birdVX = (400-mouseX)/10.0; //當滑鼠放開時,會將豬的位子-鳥的座標位子
birdVY = (300-mouseY)/10.0;
birdAY=0.98; // 重力加速度為9.8
}
加入一個判斷 boolean 來判斷打到鳥打到豬會消失
PImage imgBird, imgPig;
void setup(){
size(800,600);
imgBird=loadImage("angrybird.png");
imgPig=loadImage("pig.png");
imageMode(CENTER);
}
float birdX=400,birdY=300;
float birdVX=0, birdVY=0;
float birdAX=0, birdAY=0;
float pigX=700, pigY=200;
boolean pigAlive=true;
void draw(){
background(255);
if(pigAlive)image(imgPig, pigX,pigY,100,100);
image(imgBird,birdX,birdY,80,80);
if(dist(pigX,pigY,birdX,birdY)<100){
pigAlive=false;
}
line(birdX,birdY,400,300);
birdX += birdVX;
birdY += birdVY;
birdVX += birdAX;
birdVY += birdAY;
}
void mouseDragged(){
birdX=mouseX;
birdY=mouseY;
birdVX=birdVY=birdAX=birdAY=0;
}
void mouseReleased(){
birdVX = (400-mouseX)/10.0;
birdVY = (300-mouseY)/10.0;
birdAY=0.98;
}
在視窗加入邊框和反彈 並且速度愈來愈慢
PImage imgBird, imgPig;
void setup(){
size(800,600);
imgBird=loadImage("angrybird.png");
imgPig=loadImage("pig.png");
imageMode(CENTER);
}
float birdX=400,birdY=300;
float birdVX=0, birdVY=0;
float birdAX=0, birdAY=0;
float pigX=700, pigY=200;
boolean pigAlive=true;
void draw(){
background(255);
if(pigAlive)image(imgPig, pigX,pigY,100,100);
image(imgBird,birdX,birdY,80,80);
if(dist(pigX,pigY,birdX,birdY)<100){
pigAlive=false;
}
line(birdX,birdY,400,300);
birdX += birdVX;
birdY += birdVY;
if(birdX<40){birdX=40;birdVX=-birdVX;} // 假如鳥的X座標撞到左側 ,碰撞反彈
if(birdX>width-40){birdX=width-50;birdVX=-birdVX;} //假如鳥的X座標撞到右側 ,碰撞反彈
if(birdY<40){birdY=40;birdVY=-birdVY;} //假如鳥的Y座標撞到上面 ,碰撞反彈
if(birdY>width-230){birdY=width-230;birdVY=-birdVY;}
birdVX += birdAX;
birdVY += birdAY;
birdVX *=0.99;
birdVY *=0.99;
}
void mouseDragged(){
birdX=mouseX;
birdY=mouseY;
birdVX=birdVY=birdAX=birdAY=0;
}
void mouseReleased(){
birdVX = (400-mouseX)/10.0;
birdVY = (300-mouseY)/10.0;
birdAY=0.98;
}
第二個遊戲 小朋友下樓梯!!!!!!!!
void setup(){
size(600,500);
}
int boardX=230, boardY=400;
int kidX=300,kidY=250;
void draw(){
background(0);
rect(boardX,boardY,200,50);
rect(kidX,kidY,50,50);
if(kidX>boardX-50 && kidX<boardX+200&&
kidY>boardY-50 ) {
} else kidY++;
kidX=mouseX;
}
沒有留言:
張貼留言