2022年9月26日 星期一

互動程式week04

移動的球

void setup()
{
  size(500,500);
}
int x = 250,y=250;
void draw()
{
  ellipse(x,y,10,10);
  x = x+1;
  y = y-1;
}

會反彈的球

void setup()
{
  size(500,500);
}
float x = 250,y=250;
float vx = 1.0,vy = -0.5;
void draw()
{
  ellipse(x,y,10,10);
  x = x + vx;
  y = y + vy;
  if( x > 500) vx = -vx;
  if(y > 500) vy = -vy;
  if(x < 0) vx = -vx;
  if(y < 0) vy = -vy;
}

乒乓球

void setup()
{
  size(500,500);
}
float x = 250,y=250;
float vx = 2.0,vy = -1.5;
void draw()
{
  background(#FFFFFF);
  float boardX = mouseX;
  rect(boardX,470,100,20,20);
  ellipse(x,y,10,10);
  x = x + vx;
  y = y + vy;
  if( x > 500) vx = -vx;
  if(x < 0) vx = -vx;
  if(y < 0) vy = -vy;
  if(y>470 && x>boardX && x<boardX+100) vy = -vy;
}

乒乓球有加速度

void setup()
{
  size(500,500);
}
float x = 250,y=250;
float vx = 2.0,vy = -1.5;
float boardX,boardY = 470,boardW = 100,boardH = 20;
void draw()
{
  background(#FFFFFF);
  boardX = mouseX-boardW/2;
  rect(boardX,boardY,boardW,boardH,20);
  ellipse(x,y,10,10);
  x = x + vx;
  y = y + vy;
  if( x > 500) vx = -vx;
  if(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;
  }
}

圍棋
void setup()
{
  size(500,500);
}
void draw()
{
  for(int x=50;x<=450;x+=50)
  {
    for(int y=50;y<=450;y+=50)
    {
      ellipse(x,y,50,50);
    }
  }
}

圍棋(更新)

void setup()
{
  size(500,500);
}
int [][]  go = {
  {0,0,0,0,0,0,0,0,0},
  {0,1,1,1,0,1,1,1,0},
  {0,1,1,1,0,1,1,1,0},
  {0,1,1,1,0,1,1,1,0},
  {0,0,0,1,1,1,0,0,0},
  {0,1,1,1,1,1,1,1,0},
  {0,1,1,0,0,0,1,1,0},
  {0,1,1,0,0,0,1,1,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(50+j*50,50+i*50,50,50);
    }
  }
}


圍棋(可以玩)

void setup()
{
  size(500,500);
}
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,50+i*50,40,40);
      }
      else if(go[i][j]==2)
      {
        fill(255);
        ellipse(50+j*50,50+i*50,40,40);
      }
    }
  }
}






沒有留言:

張貼留言