2024年9月23日 星期一

week03

 week03


week03_1_PImage_loadImage_image



ctrl + K 可以看到圖檔拉進去的資料夾位置


程式碼

//week03_1_PImage_loadImage_image
//把網路下載的圖檔直接拉進來
PImage img = loadImage("arufa.jpg");
size(600,400);
image(img,0,0);


week03_2_void_setup_void_draw_fill_rect




程式碼

1.noStroke可以去掉邊線

2.rgb+a,a是透明度

//week03_2_void_setup_void_draw_fill_rect

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);

}


week03_3_arufa_more_rect




程式碼

1.noCursor(); 不要鼠標


//week03_3_arufa_more_rect

PImage img;

void setup(){

  size(600,400);

  img = loadImage("arufa.jpg");

}

void draw(){

  image(img,0,0);

  noCursor();

  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);

}


week03_4_arufa_for_for_rect




程式碼

1.用for迴圈縮短程式碼

2.老師用湊的,自己可以多想想


//week03_4_arufa_for_for_rect

PImage img;

void setup(){

  size(600,400);

  img = loadImage("arufa.jpg");

}

void draw(){

  image(img,0,0);

  noCursor();

  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);

    }

  }

}


week03_5_go_for_line_line





程式碼

1.用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);

}

另解

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_void_setup_void_draw






程式碼

1.增加互動,做出棋子

//week03_6_void_setup_void_draw

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_board_2d_array_void_mousePressed_board_i_j




程式碼

1.陣列幫助紀錄下棋位置

2.感覺可以做五子棋

//week03_7_go_board_2d_array_void_mousePressed_board_i_j

int [][] board = new int [9][9];

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_go_goColor_black_white




程式碼

1.設一個變數,完成一黑一白

2.讓欲下的棋子,成半透明(紅字)

//week03_8_go_goColor_black_white

int goColor = -1;

int [][] board = new int [9][9];

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) fill(255);

      if(board[i][j]==0) continue;

      if(board[i][j]==-1) fill(0);

      ellipse(25 + j*50,25+i*50,45,45);

    }

  }

  if(goColor==-1) fill(0,128);

  else fill(255,128);

  ellipse(mouseX,mouseY,45,45);

}

void mousePressed(){

  int i = mouseY/50,j = mouseX/50;

  board[i][j] = goColor;

  goColor = goColor * -1;

}


week03_9_arufa_array_for



程式碼

1.靠陣列先擺好

2.縮短程式碼

//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();

  noStroke();

  fill(200,200,255,128);

  

  for(int i=0;i<16;i++) {

    rect(mouseX+boardX[i],mouseY+boardY[i],70,50);

  }

}

沒有留言:

張貼留言