2017年10月16日 星期一

Week05 眼珠

畫出一雙眼睛且眼睛會照著滑鼠方向移動


1.畫出眼白部分

void setup()
{
  size (400,400);
}
void draw()
{
  background(128);//gray
  strokeWeight(20);//粗細
  ellipse(100,200,100,360);//圓心座標    x長  y長
  ellipse(300,200,180,360);//圓心座標    x長  y長
}

2.再畫出黑眼珠

void setup()
{
  size (400,400);
}
void draw()
{
  background(128);//gray
  strokeWeight(20);//粗細
  ellipse(100,200,100,360);//圓心座標    x長  y長
  ellipse(300,200,180,360);//圓心座標    x長  y長
  
  ellipse(100,200,10,10);//圓心座標    x長  y長
  ellipse(300,200,10,10);//圓心座標    x長  y長

}

3.完成

void setup()
{
  size (800,800);
}
void draw()
{
  background(128);//gray
  strokeWeight(20);
  ellipse(100,200,100,360);
  ellipse(300,200,180,360);
  
  //ellipse(100,200,10,10);
  //ellipse(300,200,10,10);
  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-300);
  float newX2 = 300+100*cos(angle2)/2;
  float newY2 = 200+200*sin(angle2)/2;
  ellipse(newX2,newY2,10,10);
}

泡泡砲塔

1.跑出基本型

void setup(){
   size(400,800); 
}

float ballX=200, ballY=600;
float ballVX=0, 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);
}

2.增加砲彈

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(0,128,0);
  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++;
}

沒有留言:

張貼留言