2022年9月26日 星期一

Week_04 2022.09.26

1. 打磚塊

(1) 動者恆動,靜者恆靜 - 設置變數

 int x=250, y=250;

(2) 畫橢圓形

ellipse(x, y, 10, 10 ); 

2. 打磚塊 - 一直不會停...!

(1) int 改成 flaot

float x=250, y=250; 

(2) 增加變數

float vx=1.0, vy=-0.5;

(3) 避免撞牆 - 修改加速度

  x = x + vx;

  y = y + vy;

  if(x > 500) vx = -vx;

  if(y < 0 ) vy = -vy; 

3. 打磚塊 - 加板子

(1) 加背景、去殘影

background(#FFFFF2);

(2) 控制的板子

rect(mouseX, 400, 100, 20 );

(3) 設定反彈

int boardX = mouseX;

if(x < 0 ) vx = -vx;

if(y> 400 && x>boardX && x<boardX+100 ) vy = -vy; 

4. 打磚塊 - 大改造

(1) 修改控制板子變數

float boardX, boardY=470, boardW=100, boardH=20;

(2) 設定boardX

boardX = mouseX-boardW/2;

(3) 修改板子的長方形

rect(boardX, boardY, boardW, boardH ); 

(4) 修改邊界

  if(( y > boardY && y > boardY+boardH )&&

    ( x > boardX && x < boardX+boardW )){

      vy = -vy;

      vx += ( mouseX - pmouseX )/2;

(5) 修改加速度

  if(mousePressed &&mouseButton == LEFT) boardW *= 1.01;   

  if(mousePressed &&mouseButton == RIGHT) boardW *= 0.99; 

//每按一次鍵就多一動一點 

(6) 完成

github

-------------------------------------------------------

 

5. 下圍棋

(1) 用迴圈畫圓

void draw(){

  for(int x=50; x<450; x+=50){

    for(int y=50; y<=450; y+=50){

      ellipse(x, y, 50, 50);

    }

  }

(2) 用陣列畫圓


6. 下圍棋 - 棋盤、黑白棋

(1) 用迴圈畫線

  for(int i=1; i<=9; i++){  //用迴圈畫線

    line(50, 50*i, 450, 50*i);

    line(50*i, 50, 50*i, 450);

  } 

(2) 修改黑白棋

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

    for(int j=0; j<9; j++){

      if( go[i][j]==1){  //1是黑棋

        fill(0);

        ellipse(50+j*50, 50+i*50, 40, 40);

      }else if( go[i][j]==2){  //2是白棋

        fill(255);

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

      }

    }

  } 

(3) 完成

7. 下圍棋 - 滑鼠下

(1) 增加程式碼 - mousePressed

void mousePressed(){

  int j = (mouseX-25)/50;

  int i = (mouseY-25)/50;

  go[i][j] = (N%2==0) ? 1 : 2 ;  //if(N%2==0)用1,否則2

  N++;

(2) 完成


 github

-------------------------------------------------------

沒有留言:

張貼留言