2022年9月26日 星期一

辰 互動概論筆記 week04

 

橢圓往下直直落!

反彈的設定於10,11行

超級好玩 可以彈回去了!!!


可縮放的彈力板

void setup(){

 size (500,500); 

}

float x=250, y=250;

float vx=2.0, vy=-1.5;

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

void draw(){

  boardX= mouseX-boardW/2;

   background(#FFFFC2);//背景除殘影

   rect(boardX,boardY,boardW,boardH);//控制的板子

   ellipse(x,y,10,10);//橢圓

   x=x+vx;

   y=y+vy;

   if(x>500)vx=-vx;

   if(y<0)vy=-vy;

   if(x<0)vx=-vx;

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

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

      vy=-vy;

      vx+=(mouseX-pmouseX)/2;//滑鼠移速

   }

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

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

}

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


下棋

擺設棋盤樣式 用了兩個迴圈



運用陣列決定黑子白子
void setup(){
 size(500,500); 
}
int [] [] go = {
   {0,0,0,0,0,0,0,0,1},
   {0,0,0,0,0,0,0,0,1},
   {0,1,0,0,0,0,0,0,1},
   {0,0,0,0,1,0,1,0,1},
   {0,0,0,0,0,0,0,0,1},
   {0,0,0,0,0,0,0,2,1},
   {0,0,0,0,0,0,0,2,1},
   {0,0,0,0,0,0,2,0,1},
   {0,0,0,0,0,2,0,0,1},
};
int N=0;
void mousePressed(){
 int j=(mouseX-25)/50;
 int i=(mouseY-25)/50;
 go[i][j]=(N%2==0)? 1:2;
 N++;
}
void draw(){
  background(246,194,108);
  for(int i=1;i<=9;i++){
     line(50,50*i,450,50*i);
     line(50*i,50,50*i,450);
  }
  for(int i=0;i<9;i++){
   for(int j=0;j<9;j++){
    if(go[i][j]==1){
     fill(0);
     ellipse(50+j*50,50+i*50,40,40);
    }else if(go[i][j]==2){
     fill(255);
     ellipse(50+j*50,50+i*50,40,40);
    }
    }
   }
  }

-----------
反紅處來設定下棋函式 超酷 做出互動式棋盤


沒有留言:

張貼留言