也可以延伸做出兩個下墜的!
程式碼:
//step01-3 很多組咧?
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];
}
}
下面多那兩行 就會讓球球變得很Q彈~可以上下互撞。
continue會讓後面不能移動,所以會整個暫停住!
就像抓蚊子一樣 一抓就死了紅點碰到的東西就會直接死亡 暫停了~
(下方只有一顆沒碰到的黃球在動)
程式碼:
//step01-3 很多組咧?
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};//false 0,truc 1
void setup()
{
size(500,600);
}
void draw()
{
background(255);
for(int i=0;i<4;i++)
{
fill(255,255,0);ellipse(x[i],y[i],50,50);
if(dist(mouseX,mouseY,x[i],y[i])<=50)
{
dead[i]=true;//剛剛是暫停 現在是碰到就死
}
if(dead[i]==true)continue;//如果葛屁了 就要再換下一個了
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);
}
接著是同學對boolean函數有疑問 老師幫助我們更好理解
可以看到下面 待機時一堆false
但只要利用mousePressed壓著下方和顏色同時都會改變成true
//step03-1 希望多很多,不只4個球
float []x;
float []y;
float []vy;
boolean [] dead;
int N=20;
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);//500以下的亂數
y[i] =random(100,200);
vy[i] =random(3,4);
dead[i] =false;//沒死
}
}
void draw()
{
background(255);
for(int i=0;i<N;i++)
{
fill(255,255,0);ellipse(x[i],y[i],50,50);
if(dist(mouseX,mouseY,x[i],y[i])<=50)
{
dead[i]=true;//剛剛是暫停 現在是碰到就死
}
if(dead[i]==true)continue;//如果葛屁了 就要再換下一個了
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);
}









沒有留言:
張貼留言