2017年9月30日 星期六

week3 玄的筆記..

Week3
今天要做憤怒鳥遊戲
先在網路下載兩張 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;
}

沒有留言:

張貼留言