2024年9月23日 星期一

SY-BlingBangBang Week03 ARuFa A4防護罩 & 棋盤/棋子

  [TODO]

上課內容:

ARuFa A4防護罩(照片匯入)

// week03_1_PImage_loadImage_image
// 把 File-Preference 字型設大一點
// 把網路下載的 arufa.jpg 拉到程式的框框裡
PImage img = loadImage("arufa.jpg");
size(600,400); //因為圖檔的大小剛好是600*400,所以開600*400
image(img,0,0);

*把下載的圖檔,在執行前先拉入程式碼

ARuFa A4防護罩(做出1個半透明防護罩)
// week03_2_void_setup_void_draw_fill_rect
// 把 File-Preference 字型設大一點
// 把網路下載的 arufa.jpg 拉到程式的框框裡
PImage img;
void setup(){
  size(600,400);
  img = loadImage("arufa.jpg");
}
void draw(){
  image(img,0,0);
  noStroke();
  fill(200,200,255,128);
  rect(mouseX,mouseY,70,50); }

ARuFa A4防護罩(做出全部半透明防護罩)
// week03_3_arufa_rect_rect_rect
// 把 File-Preference 字型設大一點
// 把網路下載的 arufa.jpg 拉到程式的框框裡
PImage img;
void setup(){
  size(600,400);
  img = loadImage("arufa.jpg");
}
void draw(){
  image(img,0,0);
  noCursor(); //不要有Cursor鼠標/游標
  noStroke(); //不要有框線
  fill(200,200,255,128); //藍色半透明
  
  rect(mouseX,mouseY-80,70,50);
  
  rect(mouseX-30,mouseY-40,70,50);
  rect(mouseX+30,mouseY-40,70,50);
  
  rect(mouseX+60,mouseY,70,50);
  rect(mouseX,mouseY,70,50);
  rect(mouseX-60,mouseY,70,50);
  
  rect(mouseX-90,mouseY+40,70,50);
  rect(mouseX-30,mouseY+40,70,50);
  rect(mouseX+30,mouseY+40,70,50);
  rect(mouseX+90,mouseY+40,70,50);
  
  rect(mouseX+60,mouseY+80,70,50);
  rect(mouseX,mouseY+80,70,50);
  rect(mouseX-60,mouseY+80,70,50);
  
  rect(mouseX-30,mouseY+120,70,50);
  rect(mouseX+30,mouseY+120,70,50);
  
  rect(mouseX,mouseY+160,70,50);
}


ARuFa A4防護罩(用for迴圈做出半透明防護罩)
// week03_4_arufa_for_for_rect
PImage img;
void setup(){
  size(600,400);
  img = loadImage("arufa.jpg");
}
void draw(){
  image(img,0,0);
  noCursor(); //不要有Cursor鼠標/游標
  noStroke(); //不要有框線
  fill(200,200,255,128); //藍色半透明
  
  for(int i=1; i<=4; i++){
    for(int j=0; j<i; j++){
      float y=i*40, x=-i/2*60+j*60+((i%2==0)?30:0); //難解的符號
      rect(mouseX+x,mouseY-80+y,70,50);
    }
  }
  for(int i=3; i>=1; i--){
    for(int j=0; j<i; j++){
      float y=(4-i)*40+160, x=-i/2*60+j*60+((i%2==0)?30:0); //難解的符號
      rect(mouseX+x,mouseY-80+y,70,50);
    }
  }
}


棋盤(一個for迴圈)
// week03_5_go_for_for_rect
size(450,450);
background(220,179,92);
strokeWeight(2);
for(int i=0;i<9;i++){
  line(25, 25+i*50, 425, 25+i*50);
  line(25+i*50, 25, 25+i*50, 425);
}


棋盤(兩個for迴圈)
// week03_5_go_for_line_line
size(450,450);
background(220,179,92);
strokeWeight(2);
noFill();
for(int i=0;i<8;i++){
  for(int j=0;j<8;j++){
    rect(25+j*50, 25+i*50, 50, 50);
  }
}

棋盤+棋子
// week03_6_go_void_setup_void_draw_ellipse_mouseX_mouseY
void setup(){
  size(450,450);
}
void draw(){
  background(220,179,92);
  strokeWeight(2);
  for(int i=0;i<9;i++){
    line(25, 25+i*50, 425, 25+i*50);
    line(25+i*50, 25, 25+i*50, 425);
  }
  ellipse(mouseX, mouseY, 45, 45);
}


棋盤+棋子+下棋
// week03_7_go_2d_array_void_mousePressed_board_i_j
int [][] board = new int[9][9]; //Java 2D陣列,預設0
void setup(){
  size(450,450);
}
void draw(){
  background(220,179,92);
  strokeWeight(2);
  for(int i=0;i<9;i++){
    line(25, 25+i*50, 425, 25+i*50);
    line(25+i*50, 25, 25+i*50, 425);
  }
  for(int i=0;i<9;i++){
    for(int j=0;j<9;j++){
      if(board[i][j]==1) ellipse(25+j*50, 25+i*50, 45, 45);
    }
  }
  ellipse(mouseX, mouseY, 45, 45);
}
void mousePressed(){
  int i=mouseY/50, j=mouseX/50;
  board[i][j]=1;
}


棋盤+棋子+下棋(黑白切換)
// week03_8_goColor_black_white 切換黑、白、黑、白......
int goColor = -1; //-1:黑,+1:白,0:沒有棋子
int [][] board = new int[9][9]; //Java 2D陣列,預設0
void setup(){
  size(450,450);
}
void draw(){
  background(220,179,92);
  strokeWeight(2);
  for(int i=0;i<9;i++){
    line(25, 25+i*50, 425, 25+i*50);
    line(25+i*50, 25, 25+i*50, 425);
  }
  for(int i=0;i<9;i++){
    for(int j=0;j<9;j++){
      if(board[i][j]==0) continue; //不要畫
      if(board[i][j]==1) fill(255);
      if(board[i][j]==-1) fill(0);
      ellipse(25+j*50, 25+i*50, 45, 45);
    }
  }
  if(goColor==-1) fill(0);
  else fill(255);
  ellipse(mouseX, mouseY, 45, 45);
}
void mousePressed(){
  int i=mouseY/50, j=mouseX/50;
  board[i][j]=goColor; //-1:黑,+1:白
  goColor = goColor*-1;
}


棋盤+棋子+下棋(黑白切換,棋子半透明)
// week03_8_goColor_black_white 切換黑、白、黑、白......
int goColor = -1; //-1:黑,+1:白,0:沒有棋子
int [][] board = new int[9][9]; //Java 2D陣列,預設0
void setup(){
  size(450,450);
}
void draw(){
  background(220,179,92);
  strokeWeight(2);
  for(int i=0;i<9;i++){
    line(25, 25+i*50, 425, 25+i*50);
    line(25+i*50, 25, 25+i*50, 425);
  }
  for(int i=0;i<9;i++){
    for(int j=0;j<9;j++){
      if(board[i][j]==0) continue; //不要畫
      if(board[i][j]==1) fill(255);
      if(board[i][j]==-1) fill(0);
      ellipse(25+j*50, 25+i*50, 45, 45);
    }
  }
  if(goColor==-1) fill(0,200); //半透明
  else fill(255,200); //半透明
  ellipse(mouseX, mouseY, 45, 45);
}
void mousePressed(){
  int i=mouseY/50, j=mouseX/50;
  board[i][j]=goColor; //-1:黑,+1:白
  goColor = goColor*-1;
}


ARuFa A4防護罩(用array陣列做出半透明防護罩)
// week03_9_arufa_array_for
int []boardX = {0,-30,+30,+60,0,-60,-90,-30,30,90,60,0,-60,-30,30,0};
int []boardY = {-80,-40,-40,0,0,0,40,40,40,40,80,80,80,120,120,160};
PImage img;
void setup(){
  size(600,400);
  img = loadImage("arufa.jpg");
}
void draw(){
  image(img,0,0);
  noCursor(); //不要有Cursor鼠標/游標
  noStroke(); //不要有框線
  fill(200,200,255,128); //藍色半透明
  for(int i=0; i<16; i++){
    rect(mouseX+boardX[i],mouseY+boardY[i],70,50);
  }
}



沒有留言:

張貼留言