2021年11月22日 星期一

08160741_Week07

1.紅點碰黃點,黃點會消失;黃點會上下跑,紅點會跟著滑鼠

float []x  = {250,150,350,300};
float []y  = {0,50,80,100};
float []vx = {0,0,0,0};
float []vy = {3,2,2,5,4};
boolean []dead = {false,false,false,false};
void setup()
{
  size(500,600);
}

void draw()
{
  background(255);
  for(int i = 0;i < 4;i++)
  {
    if(dist(mouseX,mouseY,x[i],y[i]) <= 50)
    {
      dead[i] = true;
    }
    if(dead[i] == true) continue;
    fill(255,255,0);
    ellipse(x[i],y[i],50,50);
    
    y[i] = y[i] + vy[i];
    if(y[i] > 600) vy[i] = -vy[i];
    if(y[i] < 0) vy[i] = - vy[i];
  }
  fill(255,0,0);
  ellipse(mouseX,mouseY,50,50);
}

2.隨機反彈,碰到滑鼠消失

class Ball
{
  float x,y,vx,vy;
  boolean dead;
  Ball()
  {
    x = random(500);
    y = random(500);
    vy = random(-4,4);
    vx = random(-4,4);
    dead = false;
  }
  void draw()
  {
    if(dead == true) return;
    ellipse(x,y,50,50);
    if(dist(mouseX,mouseY,x,y) < 50)
    {
      dead = true;
    }
    x = x + vx;
    y = y + vy;
    if(y > 500 || y < 0) vy = -vy;
    if(x > 500 || x < 0) vx = -vx;
  }
}

Ball []balls;
void setup()
{
  size(500,500);
  balls = new Ball[20];
  for(int i = 0;i < 20;i++)
  {
    balls[i] = new Ball();
  }
}

3.重力加速度

class Ball
{
  float x,y,vx,vy;
  boolean dead;
  Ball()
  {
    reborn();
  }
   void reborn()
   {
      x = random(500);
      y = random(500);
      vy = random(-4,4);
      vx = random(-4,4);
      dead = false;
   }
  void draw()
  {
    if(dead == true) return;
    ellipse(x,y,50,50);
    if(dist(mouseX,mouseY,x,y) < 50)
    {
      dead = true;
    }
    x = x + vx;
    y = y + vy;
    vy += 0.98;
    if(y > 500 || y < 0) vy = -vy;
    if(x > 500 || x < 0) vx = -vx;
  }
}

Ball []balls;
void setup()
{
  size(500,500);
  balls = new Ball[20];
  for(int i = 0;i < 20;i++)
  {
    balls[i] = new Ball();
  }
}
boolean gameOber = false;
void draw()
{
  background(255);
  for(int i = 0;i < 20;i++)
  {
    balls[i].draw();
  }
}

沒有留言:

張貼留言