2024年9月16日 星期一

十連雙金 week02

02-1

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

void draw() {
  background(255);
  fill(#FFDC0F);
  float a = radians(mouseX);
  for (int x=0; x<400; x+=100) {
    for (int y=0; y<400; y+=100) {
      arc(x+50, y+50, 100, 100, 0+0.5, PI*2-a, PIE);
      //x標,y標,寬 , 高,開始,結束  ,派方式畫
    }
  }
}









02-2

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

void draw() {
  background(255);
  fill(#FFDC0F);
  float a = frameCount % 180;
  if (a<45) a = radians(a);
  else if(a<90) a = radians(90-a);
  else if(a<135) a = radians(a-90);
  else if (a<180) a = radians(180-a);
  arc(200, 200, 300, 300, 0+a, PI*2-a, PIE);
}


02-3(自動02-1)

//week02_3_pacman_for_open_close
void setup() {
  size(400, 400);
}

void draw() {

  background(255);
  fill(#FFDC0F);

  for (int x=0; x<400; x+=100) {
    for (int y=0; y<400; y+=100) {
      float a = frameCount % 180;
      if (a<45) a = radians(a);
      else if (a<90) a = radians(90-a);
      else if (a<135) a = radians(a-90);
      else if (a<180) a = radians(180-a);
      arc(x+50, y+50, 100, 100, 0+0.5, PI*2-a, PIE);
      //x標,y標,寬 , 高,開始,結束  ,派方式畫
    }
  }
}


02-5(移動)

void setup() {
  size(400, 400);
  frameRate(200);//speed
}
int x = 200, y = 200;
void draw() {
  background(255);
  fill(#FFDC0F);
  if (keyPressed && keyCode==RIGHT)x++;
  if (keyPressed && keyCode==LEFT)x--;
  if (keyPressed && keyCode==UP)y--;
  if (keyPressed && keyCode==DOWN)y++;
  ellipse(x, y, 100, 100);
}


02-6

//week02_6_pacman_b_dir
void setup() {
  size(400, 400);
}

void draw() {

  background(255);
  fill(#FFDC0F);

  for (int x=0; x<400; x+=100) {
    for (int y=0; y<400; y+=100) {
      float a = frameCount % 180;
      if (a<45) a = radians(a);
      else if (a<90) a = radians(90-a);
      else if (a<135) a = radians(a-90);
      else if (a<180) a = radians(180-a);
      arc(x+50, y+50, 100, 100, 0+0.5, PI*2-a, PIE);
      //x標,y標,寬 , 高,開始,結束  ,派方式畫
    }
  }
}

02-7(旋轉)

//week02_7_pacman
void setup() {
  size(400, 400);
}
float x=200,y=200,d=PI/2*0;
void draw() {
  background(255);
  fill(#FFDC0F);
  float a = frameCount % 180;

  if (a<45) a = radians(a);
  else if (a<90) a = radians(90-a);
  else if (a<135) a = radians(a-90);
  else if (a<180) a = radians(180-a);
  arc(x, y, 100, 100, d+0+a, d+PI*2-a, PIE);
}
void keyPressed(){
 if (keyCode==RIGHT){
   x++;
   d=PI/2*0;
 }
 if (keyCode==LEFT){
   x--;
   d=PI/2*2;
 }
 if (keyCode==UP){
   y--;
   d=PI/2*3;
 }
 if (keyCode==DOWN){
   y++;
   d=PI/2*1;
 }
}


02-8(自行移動)

//week02_8_pacman_dx_dy
void setup() {
  size(400, 400);
}
int x=200, y=200, d=0;
void draw() {
  background(255);
  fill(#FFDC0F);
  float a = 0.5;
  int [] dx = {1, 0, -1, 0};
  int [] dy = {0, 1, 0, -1};
  x += dx[d];
  y += dy[d];

  arc(x, y, 100, 100, PI/2*d+a, PI/2*d + PI*2 - a, PIE);
}
void keyPressed() {
  if (keyCode==RIGHT) {
    d=0;
  }
  if (keyCode==LEFT) {
    d=2;
  }
  if (keyCode==UP) {
    d=3;
  }
  if (keyCode==DOWN) {
    d=1;
  }
}




02-9(按下移動)

//week02_9_pacman_radians_abs_frameCount
void setup() {
  size(400, 400);
}
int x=200, y=200, d=0;
void draw() {
  background(255);
  fill(#FFDC0F);
  float a = radians(abs(frameCount%90-45));
  int [] dx = {1, 0, -1, 0};
  int [] dy = {0, 1, 0, -1};
  if(keyPressed) x += dx[d];
  if(keyPressed) y += dy[d];

  arc(x, y, 100, 100, PI/2*d+a, PI/2*d + PI*2 - a, PIE);
}
void keyPressed() {
  if (keyCode==RIGHT) {
    d=0;
  }
  if (keyCode==LEFT) {
    d=2;
  }
  if (keyCode==UP) {
    d=3;
  }
  if (keyCode==DOWN) {
    d=1;
  }
}







沒有留言:

張貼留言