2017年10月16日 星期一

Week 5 - 文郁上課誌









                       2017互動技術
2017 / 10 / 16
1. 大眼睛小遊戲
2. 泡泡射擊


*大眼睛(眼球跟著滑鼠方向移動)















void setup(){
  size(600,600);
}
void draw(){
  background(#96DCF7);
  strokeWeight(20);
  ellipse(100,200, 180,360);
  ellipse(300,200, 180,360);

  ellipse(100,200, 10,10);
  ellipse(300,200, 10,10);
  line(mouseX,mouseY, 100,200);
  line(mouseX,mouseY, 300,200);

}

























void setup(){
  size(600,600);
}
void draw(){
  background(#96DCF7);
  strokeWeight(20);
  ellipse(100,200, 180,360);
  ellipse(300,200, 180,360);

  //ellipse(100,200, 10,10);
  //ellipse(300,200, 10,10);
  //line(mouseX,mouseY, 100,200);
  //line(mouseX,mouseY, 300,200);
  float angle1 = atan2( (mouseY-200)/2 , mouseX-300);
  float newX1= 300+ 100*cos(angle1)/2;
  float newY1= 200+ 200*sin(angle1)/2;
  ellipse(newX1, newY1, 10,10);
  float angle2 = atan2( (mouseY-200)/2 , mouseX-100);
  float newX2= 100 + 100*cos(angle2)/2;
  float newY2= 200 + 200*sin(angle2)/2;
  ellipse(newX2, newY2, 10,10);
}

*泡泡發射

-滑鼠不動時,黃色泡泡會沿著線發射出去,但是遊戲還不完整



















void setup(){
  size(400,800);
}
float ballX=200, ballY=600;
float ballVX=0, ballVY=0;
float angle=0;
void draw(){
  background(#804EDE);
  fill(#FA9703); ellipse(200,600,100,100);
  line(mouseX, mouseY, 200,600);
  fill(#F9FA03); ellipse(ballX,ballY, 30,30);
  angle = atan2(mouseY-600,mouseX-200);
  
  ballX+=ballVX;
  ballY+=ballVY;
}
void mouseMoved(){
  ballX=200+50*cos(angle);
  ballY=600+50*sin(angle);
}
void mousePressed(){
  ballVX=cos(angle);
  ballVY=sin(angle);
}

-滑鼠點一下可以發少泡泡(可發射多顆,但遊戲不完整,發射太多顆泡泡會當機)















void setup(){
  size(400,800);
}
float [] ballX=new float[10];
float [] ballY=new float[10];
float [] ballVX=new float[10];
float [] ballVY=new float[10];
float [] angle=new float[10];
int now=0;
void draw(){
  background(#804EDE);
  fill(#FA9703); ellipse(200,600,100,100);
  for(int i=0;i<10;i++){
    fill(#F9FA03); ellipse(ballX[i],ballY[i], 30,30);
    ballX[i]+=ballVX[i]; ballY[i]+=ballVY[i];
  }
  angle[now] = atan2(mouseY-600,mouseX-200);
}  
void mouseMoved(){
  ballX[now]=200+50*cos(angle[now]); ballY[now]=600+50*sin(angle[now]);
}
void mousePressed(){
  ballVX[now]=cos(angle[now]); ballVY[now]=sin(angle[now]);
  now++;
}

-滑鼠點一下可以發射泡泡(改良版,不會當機!)













  

if(now>=10) now=0;












沒有留言:

張貼留言