ホーム > タグ > リンケージ

リンケージ

Box2D リンケージシンボルでアニメーションさせてダッシュ&ジャンプ

Box2Dで、迷○組曲ボーナスステージもどき制作日記の続きです。

今回はFlashで作成したアニメーションのシンボルをリンケージさせて、
実際に表示されるキャラクターを動かしてみました。
このキャラクターは、前作ったコレで使ったやつの使い回しで、我らがドットりえッチです。
今回もまだエンドレスですw

画面をクリックして、「←」「→」で左右移動、「s」でジャンプです。

今回は、Flashでリンケージさせたシンボルを組み込んで、
Flex3でコンパイルする際に組み込んでいます。

ACTIONSCRIPT:
  1. [Embed(source = 'LabylinsSeed.swf', symbol = 'riecchi') ]
  2.         private var Riecchi:Class;
  3.         private var riecchi:MovieClip;

外部のFlashを組み込んで、シンボルをクラスとして使えるようにするには
[Embed(source='読み込むファイル名', symbol='リンケージ時に指定したクラス名')]

でOKです。

今回読み込んだLabylinsSeed.swfは以下のようなFlashです。

上からシンボル化したMovieClipで、それぞれを
"stop", "low", "middle", "high", "max", 飛んでるのが "jump"と命名してあります。

それとは別の、riecchiというMovieClipをシンボル化しています。
このMovieClipは、同じように"stop", "low","middle" ... と名前をつけたフレームをもち、
それぞれのフレームに上記でシンボル化したMovieClipをおいています。

↓現在加わっている力から、どのフレームのアニメーションを動かすか、
どのフレームで gotoAndStop() させるかを指示しています。

ACTIONSCRIPT:
  1. var vel_x = Math.abs(square.m_linearVelocity.x);
  2.                 var status:String = "stop";
  3.                 if( vel_x <0.5) status = "stop";
  4.                 else if(vel_x <2) status = "low";
  5.                 else if(vel_x <5) status = "middle";
  6.                 else status = "high"
  7.                
  8.                 if(status != square.m_userData.speed_status){
  9.                     riecchi.gotoAndStop(status);
  10.                     square.m_userData.speed_status = status;
  11.                 }

こうすることで、速度によってアニメーションを変えることができました。
ちなみにmaxは使わなかった。

方向転換時に慣性のような力を残す、フラットをとると減点なども追加しました。
前のコードに試行錯誤しながら作ったので、ソース汚いっす。

次回はグラフィックをもっと追加してみようかな・・・続く!!

↓勢いのあるソース全部
Continue reading

Home > Tags > リンケージ

リンク
chocolataste-planner
millon

サーチ
Feeds
Meta
blog ranking ブログランキング・にほんブログ村へ
にほんブログ村 テクノラティのお気に入りに追加する

Return to page top