2017年10月2日 星期一

week03 至



拖曳滑鼠使產生慣性



程式碼
程式碼:
void setup(){
  size(800,600);  //視窗初始化大小

}
float HookX=400,HookY=300;   
float HookVX=0,HookVY=0; 
void draw(){
  background(255);     //背景顏色(數值)
  ellipse(HookX,HookY, 50,50);     //畫一個圓(大小半徑為50)  line(HookX,HookY,400,300);       //畫一條線
  HookX+=HookVX;
  HookY+=HookVY;
}
void mouseDragged(){    //滑鼠拖曳
  HookX=mouseX;
  HookY=mouseY;
}
void mouseReleased(){     //滑鼠釋放
  HookVX=(400-mouseX)/100.0;      HookVY=(300-mouseY)/100.0;   }

拖曳滑鼠射擊讓泳圈消失

程式碼:
PImage imgHook,imgLove; 
void setup(){
  size(800,600);
  imgHook=loadImage("Hook.jpg");        
  imgLove=loadImage("Love.jpg");   
  imageMode(CENTER);  
}
float HookX=400,HookY=300;
float HookVX=0,HookVY=0;
float HookAX=0,HookAY=0;
float LoveX=700,LoveY=100;
boolean LoveAlive=true;
void draw(){
  background(255);
  if(LoveAlive)image(imgLove,LoveX,LoveY,100,100);     
  image(imgHook,HookX,HookY,100,100);
  if(dist(LoveX,LoveY,HookX,HookY)<100){
    LoveAlive=false;
  } 
  line(HookX,HookY,400,300);
  HookX+=HookVX;
  HookY+=HookVY;
  HookVX+=HookAX;
  HookVY+=HookAY;
}
void mouseDragged(){
  HookX=mouseX;
  HookY=mouseY;
  HookVX=HookVY=HookAX=HookAY=0;
}
void mouseReleased(){
  HookVX=(400-mouseX)/10.0;
  HookVY=(300-mouseY)/10.0;
  HookAY=0.98;
}

接著設定邊界,讓魚不會彈出視窗外


程式碼:
PImage imgHook,imgLove; 
void setup(){
  size(800,600);
  imgHook=loadImage("Hook.jpg");        
  imgLove=loadImage("Love.jpg");   
  imageMode(CENTER);  
}
float HookX=400,HookY=300;
float HookVX=0,HookVY=0;
float HookAX=0,HookAY=0;
float LoveX=700,LoveY=100;
boolean LoveAlive=true;
void draw(){
  background(255);
  if(LoveAlive)image(imgLove,LoveX,LoveY,100,100);     
  image(imgHook,HookX,HookY,100,100);
  if(dist(LoveX,LoveY,HookX,HookY)<100){
    LoveAlive=false;
  } 
  line(HookX,HookY,400,300);
  
  
  HookX+=HookVX;
  HookY+=HookVY;
  if(HookX<50){HookX=50;HookVX=-HookVX;}
  if(HookX>width-50){HookX=width-50;HookVX=-HookVX;}
  if(HookY<50){HookY=50;HookVY=-HookVY;}
  if(HookY>height-50){HookY=height-50;HookVY=-HookVY;}
  
  HookVX+=HookAX;
  HookVY+=HookAY;
  HookVX*=0.997;
  HookVY*=0.997;
}
void mouseDragged(){
  HookX=mouseX;
  HookY=mouseY;
  HookVX=HookVY=HookAX=HookAY=0;
}
void mouseReleased(){
  HookVX=(400-mouseX)/10.0;
  HookVY=(300-mouseY)/10.0;
  HookAY=0.98;
}

小朋友下樓梯概念



程式碼
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){
    
  }
  else kidY++;
  kidX=mouseX;
}

沒有留言:

張貼留言