2024年12月2日 星期一

聽均一席話如聽一席話 Week013 11160712

 //week13_1_animated_background_array

PImage []img = new PImage[3];
void setup(){
  size(225,225);
  img[0] = loadImage("cat1.png");
  img[1] = loadImage("cat2.png");
  img[2] = loadImage("cat3.png");
}
int I=0;
void draw(){
  background(img[I]);
  if(frameCount%20==0)I=(I+1)%3;
}



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

void draw(){
  background(#FFFFF2);
  float x= (frameCount*5%1000);
  if(x>500) x=1000-x;
  for(int y=30;y<300;y+=50){
  ellipse(x,y,30,30);
  }
}



//week13_3_animated_background_pedro_pushMatrix_translate_rotate
PImage img;
void setup(){
  size(700,500);
  img = loadImage("pedro.png");
  imageMode(CENTER);
  
}

void pedro(int x,int y){
  pushMatrix();
    translate(x,y);
    rotate(radians(frameCount));
    image(img,0,0);
   popMatrix();
}
void draw(){
  background(0);
  pedro(mouseX,mouseY);
  pedro(200,125);
  pedro(500,125);
  pedro(200,350);
  pedro(500,350);
}



//week13_4_obj_gundam_loadShape_shape_obj_mtl_jpg
PShape gundam;
void setup(){
  size(500,500,P3D);
  gundam = loadShape("Gundam.obj");
}
void draw(){
  shape(gundam,0,0,500,500);
}



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



//week13_6_obj_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=70;x<=450;x+=60){
      for(int y=150;y<=450;y+=150){
        drawgundam(x,y);
      }
    }
}
void drawgundam(int x,int y){
  pushMatrix();
      translate(x,y);
      rotateY(radians(frameCount));
      rotate(radians(180));
      scale(5,5,5);
      shape(gundam,0,0);//shape(gundam,0,0,250/2,500/2);
  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,y+25,25,25);
  rect(x,y,25,25);
  rect(x+25,y-25,25,25);
  if(frameCount%50==0 && y<550)y+=25;
  
}
void keyPressed(){
  if(keyCode==RIGHT&& y<550)x+=25;
  if(keyCode==LEFT&& y<550)x-=25;
  if(keyCode==DOWN&& y<550)y+=25;
}



///week13_8_tetris_grid_2d_array_fill_rect
void setup(){
    size(240,440);
}
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}
};

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);
    }
  }
}
void keyPressed(){
  if(keyCode==RIGHT);
  if(keyCode==LEFT);
  if(keyCode==DOWN);
}



///week13_9_tetris_color_array_c_now
void setup(){
    size(240,440);
}

color [] c= {#000000,#777777,#9900CC,#CCCC00,#};

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
void setup(){
    size(240,440);
}

color [] c= {#000000,#777777,#9900CC,#CCCC00,#00B500,#CC0000};

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){//如果是可以移動的主角,暫定是2,之後是0
          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_if_frameCount_for_for_if
void setup(){
    size(240,440);
}

color [] c= {#000000,#777777,#9900CC,#CCCC00,#00B500,#CC0000,#0000CC,#CC9900,#0000CC,#FFFFFF};
int T=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==0){
    int bad=0;//一開始沒有壞掉
    for(int i=20;i>=1;i--){//從上到下的迴圈
      for(int j=1;j<12-1;j++){//最左右不動,中間才動
        if(grid[i][j]==9){//如果是可以移動的主角,暫定是2,之後是0
          if(grid[i+1][j]!=0 &&  grid[i+1][j]!=9)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;
               grid[i][j]=0;
          }
        }
      }
    }else{
      for(int i=20;i>=1;i--){
          for(int j=1;j<12-1;j++){
             if(grid[i][j]==9){
               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}
};



沒有留言:

張貼留言