2017年10月16日 星期一

Week05_一個上課筆記

作業一: 大眼睛

程式教學
眼睛裡的眼球會跟著滑鼠移動
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);
}


作業二: 砲塔射擊遊戲

程式教學
用滑鼠發射砲彈,但限制10顆砲彈
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(#F20C0C);ellipse(200,600,100,100);
  for(int i=0;i<10;i++){
    fill(#F2740C);  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++;
}



未完成的程式
void setup(){
  size(400,800);
  for(int i=0;i<20;i++){
    badDead[i]=false;
    badx[i]=random(0-300,400+300);
    bady[i]=random(-200,0);
    badvx[i]=-(badx[i]-200)/800;
    badvy[i]=-(bady[i]-600)/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];
float [] badx=new float[20];
float [] bady=new float[20];
float [] badvx=new float[20];
float [] badvy=new float[20];
boolean [] badDead=new boolean[20];
int now=0;
boolean bGameOver=false;
void draw(){
  background(0,128,0);
  fill(#F20C0C);ellipse(200,600,100,100);
  for(int i=0;i<10;i++){
    fill(#F2740C);  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++;
}








沒有留言:

張貼留言