ホーム > タグ > リンケージ
リンケージ
Box2D リンケージシンボルでアニメーションさせてダッシュ&ジャンプ
Box2Dで、迷○組曲ボーナスステージもどき制作日記の続きです。
今回はFlashで作成したアニメーションのシンボルをリンケージさせて、
実際に表示されるキャラクターを動かしてみました。
このキャラクターは、前作ったコレで使ったやつの使い回しで、我らがドットりえッチです。
今回もまだエンドレスですw
画面をクリックして、「←」「→」で左右移動、「s」でジャンプです。
今回は、Flashでリンケージさせたシンボルを組み込んで、
Flex3でコンパイルする際に組み込んでいます。
- [Embed(source = 'LabylinsSeed.swf', symbol = 'riecchi') ]
- private var Riecchi:Class;
- 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() させるかを指示しています。
- var vel_x = Math.abs(square.m_linearVelocity.x);
- var status:String = "stop";
- if( vel_x <0.5) status = "stop";
- else if(vel_x <2) status = "low";
- else if(vel_x <5) status = "middle";
- else status = "high"
- if(status != square.m_userData.speed_status){
- riecchi.gotoAndStop(status);
- square.m_userData.speed_status = status;
- }
こうすることで、速度によってアニメーションを変えることができました。
ちなみにmaxは使わなかった。
方向転換時に慣性のような力を残す、フラットをとると減点なども追加しました。
前のコードに試行錯誤しながら作ったので、ソース汚いっす。
次回はグラフィックをもっと追加してみようかな・・・続く!!
↓勢いのあるソース全部
Continue reading
- Comments: 4
- Trackbacks: 2
Home > Tags > リンケージ


