2017年9月30日 星期六

Week03*互動技術課堂筆記*

【利用Processing】


*做出簡單小遊戲*

小遊戲基本應用介紹

1.1拖曳滑鼠使產生慣性













程式碼:

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;     //X位移方向
  HookVY=(300-mouseY)/100.0;     //Y位移方向
}


1.2拖曳滑鼠射擊讓愛心消失




程式碼:
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;
}

1.3設定邊界,讓鉤子不會視窗外














程式碼:
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;
}

1.4小朋友下樓梯概念














程式碼:
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;
}



沒有留言:

張貼留言