2017年9月30日 星期六

Week 03 邱

#第03週
-------------------------------------------------------------------------------------------------------------------------
◎跟著滑鼠游標移動


程式碼:

PImage imgEgg,imgRyan;
void setup(){
  size(500,500);
  imgEgg=loadImage("gg2.png");
  imgRyan=loadImage("ryan1.png");
}
void draw(){
  background(180,217,254);
  image(imgEgg,500,500);
  image(imgRyan,mouseX,mouseY);
}




◎按壓後隨滑鼠拖曳

程式碼:

PImage imgEgg,imgRyan;
void setup(){
  size(800,800);
  imgEgg=loadImage("gg2.png");
  imgRyan=loadImage("ryan1.png");
}
float eggX=400,eggY=400;
void draw(){
  background(180,217,254);
  image(imgRyan,200,200);
  image(imgEgg,eggX,eggY);
}
void mouseDragged(){
   eggX=mouseX;
   eggY=mouseY; 

}


◎發射(彈弓)

程式碼:

PImage imgEgg,imgRyan;
void setup(){
  size(800,800);
  imgEgg=loadImage("gg2.png");
  imgRyan=loadImage("ryan1.png");
}
float eggX=400,eggY=400;
float eggVX=0,eggVY=0;
void draw(){
  background(180,217,254);
  ellipse(eggX,eggY,100,100);
  line(eggX,eggY,400,400);
  eggX+=eggVX;
  eggY+=eggVY;
  //image(imgRyan,200,200);
  //image(imgEgg,eggX,eggY);
}
void mouseDragged(){
   eggX=mouseX;
   eggY=mouseY; 
}
void mouseReleased(){
   eggVX=(400-mouseX)/100.0;
   eggVY=(400-mouseY)/100.0;

}








◎發射(彈弓)

程式碼:

PImage imgEgg,imgRyan;
void setup(){
  size(800,800);
  imgEgg=loadImage("gg2.png");
  imgRyan=loadImage("ryan1.png");
  imageMode(CENTER);  ///以圖片中點為起點
}
float eggX=400,eggY=400;
float eggVX=0,eggVY=0;
void draw(){
  background(180,217,254);
  line(eggX,eggY,400,400);
  image(imgEgg,eggX,eggY,100,100);///img,x,y,width,height
  //ellipse(eggX,eggY,100,100);
  eggX+=eggVX;
  eggY+=eggVY;
  //image(imgRyan,200,200);
  //image(imgEgg,eggX,eggY);
}
void mouseDragged(){
   eggX=mouseX;
   eggY=mouseY; 
}
void mouseReleased(){
   eggVX=(400-mouseX)/100.0;
   eggVY=(400-mouseY)/100.0;

}





◎發射(牛頓第一運動定律)

程式碼:

PImage imgEgg,imgRyan;
void setup(){
  size(800,800);
  imgEgg=loadImage("gg2.png");
  imgRyan=loadImage("ryan1.png");
  imageMode(CENTER);
}
float eggX=400,eggY=400;
float eggVX=0,eggVY=0;
float eggAX=0,eggAY=0;
void draw(){
  background(180,217,254);
  line(eggX,eggY,400,400);
  image(imgEgg,eggX,eggY,100,100);///img,x,y,width,height
  //ellipse(eggX,eggY,100,100);
  eggX+=eggVX;
  eggY+=eggVY;
  eggVX+=eggAX;
  eggVY+=eggAY;
  //image(imgRyan,200,200);
  //image(imgEgg,eggX,eggY);
}
void mouseDragged(){
   eggX=mouseX;
   eggY=mouseY; 
   eggVX=eggVY=eggAX=eggAY=0;
}
void mouseReleased(){
   eggVX=(400-mouseX)/10.0;
   eggVY=(400-mouseY)/10.0;
   eggAY=0.98;

}



◎發射(kill目標)

程式碼:

PImage imgEgg,imgRyan;
void setup(){
  size(800,800);
  imgEgg=loadImage("gg2.png");
  imgRyan=loadImage("ryan1.png");
  imageMode(CENTER);
}
float eggX=400,eggY=400;
float eggVX=0,eggVY=0;
float eggAX=0,eggAY=0;
float ryanX=700,ryanY=200;  ///Ryan在視窗的位置
Boolean ryanAlive=true;
void draw(){
  background(180,217,254);
  if(ryanAlive)image(imgRyan,ryanX,ryanY,150,250);
  line(eggX,eggY,400,400);
  image(imgEgg,eggX,eggY,100,100);///img,x,y,width,height
  if(dist(ryanX,ryanY,eggX,eggY)<100){  ///判斷有沒有殺掉Ryan
    ryanAlive=false;
  }
  //ellipse(eggX,eggY,100,100);
  eggX+=eggVX;
  eggY+=eggVY;
  eggVX+=eggAX;
  eggVY+=eggAY;
  //image(imgRyan,200,200);
  //image(imgEgg,eggX,eggY);
}
void mouseDragged(){
   eggX=mouseX;
   eggY=mouseY; 
   eggVX=eggVY=eggAX=eggAY=0;
}
void mouseReleased(){
   eggVX=(400-mouseX)/10.0;
   eggVY=(400-mouseY)/10.0;
   eggAY=0.98;

}



◎建立城牆(蛋不會跑到視窗外)

程式碼:

PImage imgEgg,imgRyan;
void setup(){
  size(800,800);
  imgEgg=loadImage("gg2.png");
  imgRyan=loadImage("ryan1.png");
  imageMode(CENTER);
}
float eggX=400,eggY=400;
float eggVX=0,eggVY=0;
float eggAX=0,eggAY=0;
float ryanX=700,ryanY=200;
Boolean ryanAlive=true;
void draw(){
  background(180,217,254);
  if(ryanAlive)image(imgRyan,ryanX,ryanY,150,250);
  line(eggX,eggY,400,400);
  image(imgEgg,eggX,eggY,100,100);///x,y,w,h
  if(dist(ryanX,ryanY,eggX,eggY)<100){
    ryanAlive=false;
  }
  
  eggX+=eggVX;
  eggY+=eggVY;
  if(eggX<50){eggX=50;eggVX=-eggVX;}  ///城牆
  if(eggX>width-50){eggX=width-50;eggVX=-eggVX;}
  if(eggY<50){eggY=50;eggVY=-eggVY;}
  if(eggY>width-50){eggY=width-50;eggVY=-eggVY;}
  
  
  eggVX+=eggAX;
  eggVY+=eggAY;
  eggVX*=0.997;  ///速度越來越慢
  eggVY*=0.997;
  //image(imgRyan,200,200);
  //image(imgEgg,eggX,eggY);
}
void mouseDragged(){
   eggX=mouseX;
   eggY=mouseY; 
   eggVX=eggVY=eggAX=eggAY=0;
}
void mouseReleased(){
   eggVX=(400-mouseX)/10.0;
   eggVY=(400-mouseY)/10.0;
   eggAY=0.98;

}




◎小朋友下樓梯 Part.1

程式碼:

void setup(){
   size(600,500); 
}
int boardX=227,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){
     //touch tje board
   }else kidY++;  //if kid dosen't touch the board
   
   kidX=mouseX;

}






沒有留言:

張貼留言