あなたが今、抱えてる悩み カンドウコーポレーションが解決します お悩み一掃!!
STAFF INFORMATION

フラッシュ・ラボ バウンド処理[クラス型] [柳谷 武]

スタッフ紹介 >> 柳谷 武 >> フラッシュ・ラボ >> バウンド処理[クラス型]  
<< 前に戻る 次へ進む >>
[オブジェクトの色を複数の中から作成]GRAVITY
実行中に作成したオブジェクトの色がひとつひとつ異なるようにしたい。

オブジェクトの色を複数の中から作成

[2]オブジェクトの色を複数用意して、その中からランダムで表示すます。

今回は1つのフレームに全ての処理を書く方法で制作してみました。

[ スクリプト - ツクリカタ ]

[A] ライブラリに準備するもの

   ・追加は特になし。

[B] "objects"の中に1frameずつ違う色を用意する。

ではまず、フラッシュの実行が始まる最初のフレームにスクリプトを記述します。


初期定義

MovieClip.prototype.obj = function() {

};

obj.prototype = new MovieClip();

obj.prototype.onLoad = function() {

  //落下設定初期値

  this.ySpeed = 0;

  this.ySpeedAdd = 4;

  this.bound = 0.8;
  this.bound_kinds = random(10)+1;

  this.gotoAndStop(this.bound_kinds);

};



繰り返し処理

obj.prototype.onEnterFrame = function() {

  //落下設定

  this.ySpeed += this.ySpeedAdd;

  //加速

  this._y += this.ySpeed;

  //着地判定

  if (this._y+(this._height/2)>100) {

    //地面に当たったら

    this._y -= (this._y+(this._height/2))-100;

    //地面を軸に座標を反転

    if (this.ySpeed>0.05) {

      //バウンドの力で判断

      this.ySpeed *= -this.bound;

    } else {

      //バウンドが弱まったら

      delete this.onEnterFrame;//処理をとめる

    }

  }

};
Object.registerClass("objects", obj);



初期処理

_root.obj_max = 4;

for (i=0; i<obj_max; i++) {

  attachMovie("objects", i, i);

  this[i].num = i;

  this[i]._x = random(50)+25;

  this[i]._y = -random(200);

  this[i]._xscale = this[i]._yscale = 160;

}


※上記のスクリプトには、全角スペースが含まれています。
コピペで使う場合、エラーが起こってしまうので、TABで行を右にずらす作業をやり直す必要があります。


[ スクリプトの意味 ]

初期設定
●this.bound_kinds = random(10)+1;
●this.gotoAndStop(this.bound_kinds);
オブジェクトが作成されて初期設定するとき、ランダムでフレームを移動→停止する。

初期処理
●_root.obj_max = 4;
オブジェクトの数を複数に増やす。



<< 前に戻る 次へ進む >>