2024年12月2日 星期一

week131313

week13-1



 PImage[] img = new PImage[3];


void setup() {

  size(550, 370);

  img[0] = loadImage("snail01.png");

  img[1] = loadImage("snail02.png");

  img[2] = loadImage("snail03.png");

}


int I = 0; // 0, 1, 2, 0, 1, 2, 0, 1, 2...


void draw() {

  background(img[I]);

  if (frameCount % 20 == 0) I = (I + 1) % 3;

}


week13-2

void setup() {
  size(500, 300); 
}

void draw() {
  background(#FFFFF2);
  float x = (frameCount * 5 % 1000);
  if (x > 500) x = 1000 - x; // 超過500範圍,就折回來
  for (int y = 30; y < 300; y += 50) {
    ellipse(x, y, 30, 30);
  }
}

week13-3



PImage img;

void setup() {
  size(500, 300);
  img = loadImage("turkey.png");
  imageMode(CENTER);
}

void turkey(int x, int y) {
  pushMatrix();
  translate(x, y);
  rotate(radians(frameCount));
  image(img, 0, 0);
  popMatrix();
}

void draw() {
  background(255);
  turkey(mouseX, mouseY); // 會跟著 mouse 動
  turkey(100, 100);       // 左上角
  turkey(400, 100);       // 右上角
  turkey(100, 200);       // 左下角
  turkey(400, 200);       // 右下角
}

week13-4


PShape gundam;

void setup() {
  size(500, 500, P3D); // 使用 P3D
  gundam = loadShape("Gundam.obj");
}

void draw() {
  shape(gundam, 0, 0, 250, 500);
}


week13-5

PShape gundam;

void setup() {
  size(500, 500, P3D); // 小心 P3D
  gundam = loadShape("Gundam.obj");
}

void draw() {
  background(#BBFF81); // 淡綠色
  pushMatrix();
  translate(mouseX, mouseY);
  rotateY(radians(frameCount));
  rotateX(radians(180));
  scale(5, 5, 5);
  shape(gundam, 0, 0); // shape(gundam, 0, 0, 250/2, 500/2);
  popMatrix();
}


week13-6



void setup() {

  size(500, 500, P3D); // 小心 P3D

  gundam = loadShape("Gundam.obj");

}


void draw() {

  background(#BBFF81); // 淡綠色

  drawGundam(mouseX, mouseY);

  for (int x = 0; x <= 500; x += 500 / 4) {

    drawGundam(x, 300);

  }

}


void drawGundam(int x, int y) {

  pushMatrix();

  translate(x, y);

  rotateY(radians(frameCount));

  rotateX(radians(180));

  scale(10, 10, 10);

  shape(gundam, 0, 0); // shape(gundam, 0, 0, 250/2, 500/2);

  popMatrix();

}


week13-7

void setup() {
  size(300, 600);
}

float x = 50, y = 50;

void draw() {
  background(0);
  fill(153, 0, 204);
  rect(x, y - 25, 25, 25);
  rect(x - 25, y, 25, 25);
  rect(x, y + 25, 25, 25);
  rect(x + 25, y, 25, 25);
  
  if (frameCount % 50 == 0) 
    y += 25;
}

void keyPressed() {
  if (keyCode == RIGHT) 
    x += 25;
  if (keyCode == LEFT) 
    x -= 25;
}


week13-8
void setup() {
  size(240, 440); // w: j x 20+2 | h: i x 20+2
}

void draw() {
  for (int i = 0; i < 22; i++) {
    for (int j = 0; j < 12; j++) {
      if (grid[i][j] == 1) fill(119, 119, 119); // 灰色
      if (grid[i][j] == 0) fill(0);            // 黑色
      if (grid[i][j] == 2) fill(153, 0, 204);  // 紫色
      rect(j * 20, i * 20, 20, 20);
    }
  }
}

int[][] grid = {
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
  {1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
};


week13-9


color [] c = {#000000, #777777, #9900CC, #CCCC00};
void setup() {
  size(240, 440); // w: j x 20+2 | h: i x 20+2
}

void draw() {
  for (int i = 0; i < 22; i++) {
    for (int j = 0; j < 12; j++) {
      int now = grid[i][j];
      fill(c[now]);
      rect(j * 20, i * 20, 20, 20);
    }
  }
}

int[][] grid = {
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
  {1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
};


week13-10

color [] c = {#000000, #777777, #9900CC, #CCCC00, #00B500, #CC0000};
void setup() {
  size(240, 440); // w: j x 20+2 | h: i x 20+2
}

void draw() {
  for (int i = 0; i < 22; i++) {
    for (int j = 0; j < 12; j++) {
      int now = grid[i][j];
      fill(c[now]);
      rect(j * 20, i * 20, 20, 20);
    }
  }
  if(frameCount%==50){
    int bad=0;
    for(int i=20; i>=1; i++){
      for(int j=1; j<12-1; j++){
        if(grid[i][j]==2){
          if(grid[i+1][j]!=0 && grid[i+1][j]!=2)bad=1;
        }
    }
}
  if(bad==0){
     for(int i=20; i>=1; i--){\
     for(int j=1; j<12-1; j++){
       if(grid[i][j]==2){
         grid[i+1][j]=2;
         grid[i][j] = 0;
        }
      }
     }
   }
  }
}

int[][] grid = {
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
  {1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
};





沒有留言:

張貼留言