Help us understand the problem. What is going on with this article?

心臓の鼓動っぽいモーション

More than 5 years have passed since last update.

こちらのコードはJavaになりますが、
JS仕様にしてjsdo.itで公開しました。
http://jsdo.it/hp0me_/uBj3

ゲームプログラミングの息抜きにProcessingというのも乙なもの(?)です。
Javaに慣れてない方は、練習にもなります。

実行イメージ (gif動画)

gifじゃ伝わりにくいですが・・・
sketch16.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();
  }

}

hp0me
スマートフォンゲームがメインですが、最近は雑食になってきました。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away