2022年9月26日 星期一

END interaction week04

 1.圓圈=>直線

void setup()

{

  size(600,600);

}


int x=300,y=300;


void draw()

{

  ellipse(x,y,5,5);

  x+=1;

  y-=1;

}



2.反彈

void setup()

{

  size(600,600);

}


float x=300,y=300;

float vx=1.0,vy=-0.5;


void draw()

{

  ellipse(x,y,20,20);

  x+=vx;

  y+=vy;

  if(x>600|x<0)vx=-vx;

  if(y<0|y>600)vy=-vy;

}


3.板子反彈

void setup()

{

  size(600,600);

}


float x=300,y=300;

float vx=3.0,vy=-2.5;


void draw()

{

  background(#FFFFF2);

  int boardx=mouseX;

  rect(boardx,570,250,20);

  ellipse(x,y,20,20);

  x+=vx;

  y+=vy;

  if(x>600|x<0)vx=-vx;

  if(y<0)vy=-vy;

  if(y>570 && x>boardx && x<boardx+250) vy=-vy;

}


4. 板子長短+反彈軌道

void setup()

{

  size(600,600);

}


float x=300,y=300;

float vx=3.0,vy=-2.5;

float boardx,boardy=570,boardw=250,boardh=20;


void draw()

{

  background(#FFFFF2);

  int boardx=mouseX;

  rect(boardx,boardy,boardw,boardh);

  ellipse(x,y,20,20);

  x+=vx;

  y+=vy;

  if(x>600|x<0)vx=-vx;

  if(y<0)vy=-vy;

  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;

}


5.棋盤

void setup()

{

  size(600,600);

}


void draw()

{

  for(int x=100;x<=500;x+=50)

  {

    for(int y=100;y<=500;y+=50)

    {

      ellipse(x,y,50,50);

    }

  }

}


6.黑白棋盤

void setup()

{

  size(600,600);

}


int [][] go={

  {0,0,0,0,0,0,0,0,1},

  {0,0,0,0,0,0,0,0,0},

  {0,0,0,0,0,0,0,0,0},

  {0,0,0,0,0,0,1,0,0},

  {0,0,0,0,0,0,0,0,0},

  {0,0,0,0,0,0,0,0,0},

  {0,0,0,1,0,0,0,0,0},

  {0,0,0,0,0,0,0,0,0},

  {0,0,0,0,0,0,0,0,0}

};


void draw()

{

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

  {

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

    {

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

      else fill(255);

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

    }

  }

}


7.正常棋盤

void setup()

{

  size(600,600);

}


int [][] go={

  {0,0,0,0,0,0,0,0,1},

  {0,0,0,0,0,0,0,0,0},

  {0,0,0,0,0,0,0,0,0},

  {0,0,0,0,0,0,1,0,0},

  {0,0,0,0,0,0,0,0,0},

  {0,0,0,0,0,0,0,0,0},

  {0,2,0,1,0,0,0,0,0},

  {0,0,0,0,0,0,0,0,0},

  {0,2,0,0,0,0,0,0,0}

};


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,100+i*50,40,40);

      }

      else if(go[i][j]==2)

      {

        fill(255);

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

      }

    }

  }

}


8. 1黑2白

void setup()

{

  size(600,600);

}


int [][] go={

  {0,0,0,0,0,0,0,0,0},

  {0,0,0,0,0,0,0,0,0},

  {0,0,0,0,0,0,0,0,0},

  {0,0,0,0,0,0,0,0,0},

  {0,0,0,0,0,0,0,0,0},

  {0,0,0,0,0,0,0,0,0},

  {0,0,0,0,0,0,0,0,0},

  {0,0,0,0,0,0,0,0,0},

  {0,0,0,0,0,0,0,0,0}

};


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,100+i*50,40,40);

      }

      else if(go[i][j]==2)

      {

        fill(255);

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

      }

    }

  }

}



沒有留言:

張貼留言