試著寫出 Ninja Fruit 的程式碼
球以拋物線往上丟
float fruitX, fruitY, fruitVX, fruitVY;
void setup()
{
size(800,600);
fruitX=30; fruitVX=3;
fruitY=700; fruitVY=-35;
}
void draw()
{
background(0);
ellipse(fruitX, fruitY, 100, 100);
fruitX+=fruitVX;
fruitY+=fruitVY;
fruitVY+=0.98;
}
N02
把程式碼加上陣列,使其可以一次丟20顆球
float [] fruitX=new float[20];
float [] fruitY=new float[20];
float [] fruitVX=new float[20];
float [] fruitVY=new float[20];
void setup()
{
size(800,600);
for(int i=0;i<20;i++)
{
fruitX[i]=random(800); fruitVX[i]=3;
fruitY[i]=700; fruitVY[i]=-35;
}
}
void draw()
{
background(0);
for(int i=0;i<20;i++)
{
ellipse(fruitX[i], fruitY[i], 100, 100);
fruitX[i]+=fruitVX[i];
fruitY[i]+=fruitVY[i];
fruitVY[i]+=0.98;
}
}
N03
使水果有重生功能
1. 初始值設定 2.滑鼠碰到重生 3.水果掉到螢幕下重生
float [] fruitX=new float[20];
float [] fruitY=new float[20];
float [] fruitVX=new float[20];
float [] fruitVY=new float[20];
void reborn(int i)
{
fruitX[i]=random(800); fruitVX[i]=random(6)-3;
fruitY[i]=700; fruitVY[i]=-35;
}
void setup()
{
size(800,600);
for(int i=0;i<20;i++)
{
reborn(i);
}
}
void draw()
{
background(0);
for(int i=0;i<20;i++)
{
if( dist(mouseX, mouseY, fruitX[i], fruitY[i])<=50)
{
reborn(i);
continue;
}
ellipse(fruitX[i], fruitY[i], 100, 100);
fruitX[i]+=fruitVX[i];
fruitY[i]+=fruitVY[i];
fruitVY[i]+=0.98;
if(fruitY[i]>700) reborn(i);
}
}
沒有留言:
張貼留言