こちらのコードはJavaになりますが、
JS仕様にしてjsdo.itで公開しました。
http://jsdo.it/hp0me_/uBj3
ゲームプログラミングの息抜きにProcessingというのも乙なもの(?)です。
Javaに慣れてない方は、練習にもなります。
実行イメージ (gif動画)
コードのイメージ
フレームが0から20くらいまであるとします。
そのうち17から20フレまではスピードを急激に速くするとこんな感じになります。
コード
sketch_150324a.pde
//血の粒の数
int cellNumber = 350;
//通常スピードと速いスピード
int speed = 1;
int speedFast = 5;
//通常フレームとどこから速くなるか
int frameMax = 20;
int frameFast = 17;
//粒の大きさにバリエーションをつける
int minRad = 10;
int maxRad = 90;
BloodCell[] _cellArr = {};
void setup(){
size(800,800);
background(255);
smooth();
generateCells();
}
void draw(){
background(255);
for(int i=0; i<_cellArr.length; i++){
BloodCell cell = _cellArr[i];
cell.update();
}
}
void generateCells(){
//粒を生成
for(int i=0; i<cellNumber; i++){
BloodCell cell = new BloodCell();
cell.genarate();
_cellArr = (BloodCell[])append(_cellArr,cell);
}
}
//血の粒をクラス化
class BloodCell {
float x,y,vx,vy,rad;
int counter;
BloodCell(){
x = random(width);
y = random(height);
rad = random(minRad,maxRad);
vx = random(-speed,speed);
vy = random(-speed,speed);
}
void genarate(){
noStroke();
fill(203,51,51,120);
ellipse(x,y,rad*2,rad*2);
}
void update()
{
//遅い移動
if(counter < frameFast){
vx = random(-speed,speed);
vy = random(-speed,speed);
//速い移動
}else{
vx = random(-speedFast,speedFast);
vy = random(-speedFast,speedFast);
}
counter++;
if(counter == frameMax)counter = 0;
x += vx;
y += vy;
//フレーム描画
genarate();
}
}