2024年9月23日 星期一

沒有那把劍,我照樣可以殲滅敵軍!!!WEEK03

 Week03

放入圖片
PImage img = loadImage("arufa.jpg");
size(600, 400);size(600, 400);//圖檔大小為600x400,所以開相同大小
image(img, 0, 0);

在圖片上放可移動方塊
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);
}

產生一個類似防護罩的東西,可移動
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-30, mouseY+40, 70, 50);
  rect(mouseX+90, 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-30, mouseY+40, 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);
}

和上一個一樣,只是改成迴圈
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<=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);
    }
  }
}

用迴圈畫出棋盤
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);
   }
}
比上個程式多個可移動的棋子
void setup(){
   size(450, 450);
}
void draw(){
 background(220, 179, 92);
 strokeWeight(2);
 for(int i=0; i<90; i++){
   line(25, 25 + i*50, 425, 25 + i*50);
   line(25 + i*50, 25, 25 + i*50, 425);
 }
 ellipse(mouseX, mouseY, 45, 45);
}

變成可下棋
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;
}

可以完整下棋了
int goColor = -1;//-1:黑 +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]== 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;
   goColor*=-1;
}

簡化版的護盾,陣列加迴圈
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);
    }
}

沒有留言:

張貼留言