2021年11月22日 星期一

不知道第幾周

 一開始沒跟到









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};

void setup(){

  size(500,600);

}

void draw(){

  background(255);

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

    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];

設上下界讓他碰到以後往上下彈








在講解圓形的碰觸關係

用小畫家在解釋設定圓形半徑的關係







新增了

if(dist(mouseX,mouseY,x[i],y[i])<=50){

      continue;

    }

 fill(255,0,0);ellipse(mouseX,mouseY,50,50);

使滑鼠操控的球碰到其他球的時候會停下來









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);

}

增加布林函數

使碰到的球變不見

\













練習家講解布林函數

設false為綠色true為紅色

mousePressed的時候為true

其餘為false







將程式改成數值隨機

void setup(){

  size(500,600);

  x=new float[N];

  y=new float[N];

  vy=new float[N];

  dead=new boolean[N];

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

    x[i]=random(500);

    y[i]=random(100,200);

    vy[i]=random(3,4);

    dead[i]=false;

  }

}








程式改成

先將球的程式寫好

要畫圖的時候在叫出來使用









vx=random(-4,4);

使球也會有x軸的移動

所以球不只會上下移動而是整張亂跑


沒有留言:

張貼留言