2024年12月2日 星期一

Dubi week13

 Week13

//week13_1_animated_background_array_I_frameCount
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;
void draw(){
  background(img[I]);
  if(frameCount%20==0) I = (I+1)%3;
}










//week13_3_animated_background_turkey_pushMatrix_translate_rotate
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_loadShape_shape_obj_mtl_jpg
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_loadShape_shape_pushMatrix_scale_translate_rotate_popMatrix

PShape gundam;
void setup() {
  size(500, 500, P3D);
  gundam = loadShape("Gundam.obj");
}
void draw() {
  background(#BBFF81);
  pushMatrix();
  translate(mouseX, mouseY);
  rotateY(radians(frameCount));
  rotate(radians(180));
  scale(5, 5, 5);
  shape(gundam, 0, 0);
  popMatrix();
}























//week13_6_PShape_gundam_for_loop
PShape gundam;
void setup() {
  size(500, 500, 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));
  rotate(radians(180));
  scale(10, 10, 10);
  shape(gundam, 0, 0);
  popMatrix();
}
















//week13_7_tetris_falling
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);
  rect(x,y+25,25,25);
  if(frameCount%50==0) y += 25;
}
void keyPressed(){
  if(keyCode==RIGHT)  x += 25;
  if(keyCode==LEFT)  x -= 25;
}















//week13_8_tetris_grid_2d_array_fill_rect
void setup(){
  size(240,440);
}
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_tetris_color_array_c_now
color [] c = {#000000, #777777, #9900CC, #CCCC00, #00B500, #CC0000, #C00000, #666666, #0088CC, #CCC000};
void setup() {
  size(240, 440);
}
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_tetris_falling_if_frameCount_for_for_if

color [] c = {#000000, #777777, #9900CC, #CCCC00, #00B500, #CC0000, #C00000, #666666, #0088CC, #CCC000};
void setup() {
  size(240, 440);
}
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==0) {
    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},
};















//week13_11_tetris_falling_alive_9_freeze_dead_T

color [] c = {#000000, #777777, #9900CC, #OOC00, #00B500, #CC0000, #CC000, #0000CC, #0C900, #0000CC};
int T = 2;
void setup() {
  size(240, 440);
}
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==0) {
    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]==9) {
            grid[i+1][j]=9;//9代表活著可以動
            grid[i][j]= 0;
          }
        }
      }
    }else{
      for(int i = 20; i>=1; i--){
        for(int j=1;c j<12-1; j++){
          if grid[i][j] = T;
              grid[i][j] = T;
          }
        }
      }
    }
  }
}
int [][] grid= {
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
  {1, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 1},
  {1, 0, 0, 0, 0, 9, 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},
};




沒有留言:

張貼留言