2017年10月16日 星期一

Week05



1.做出可以跟著滑鼠的眼睛

程式碼:
void setup(){
   size(800,800);
}
void draw(){
   background(128);
   strokeWeight(20);
   ellipse(100,200,180,360);
   ellipse(300,200,180,360);
   
   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);
}

2.射出砲彈
程式碼:
size(400,800);
}
float ballX=200, ballY=600;
float ballVX, ballVY=0;
float angle=0;
void draw(){
    background(0,128,0);
    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 draw()
{
   background(0,128,0);
   fill(#FA9703);ellipse(200,600,100,100);
  /// line(mouseX,mouseY,200,600);
   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++;
}

沒有留言:

張貼留言