2007-10-25 | 21:58
Fisix サンプル
パーティクルとスプリングの接続
画像貼付け
マウスクリックとパーティクルの割当
次の処理のサンプル
package { import com.fileitup.fisixengine.collisions.*; import com.fileitup.fisixengine.core.*; import com.fileitup.fisixengine.graphics.*; import com.fileitup.fisixengine.particles.*; import com.fileitup.fisixengine.utils.MouseAttacher; import flash.display.*; import flash.events.*; import flash.text.TextField; [SWF(width='600',height='400',backgroundColor='0xffffff',framerate='30')] public class Main extends MovieClip{ [Embed(source="lena.jpg")] public var bm:Class; private var myEngine:FisixEngine; private var mouseAttacher:MouseAttacher; public function Main(){ // 最初にFisixEngineオブジェクトを作る myEngine = new FisixEngine(); // 衝突時のモードを設定 myEngine.setReactionMode(ReactionModes.PHYSICAL); // 重力を設定(x方向 0, y方向 30) : myEngine.setGravity(0,30); var bmp:Bitmap = new bm() as Bitmap; createSpringBitmap(300,50,new bm() as Bitmap); myEngine.setRender(true); myEngine.setRenderGraphics(graphics); // エンジンの開始 myEngine.startEngine(30); } private function createSpringBitmap(x:int, y:int, bmp:Bitmap):void{ // 円を三つ作ってスプリングでつなぐ var p1:CircleParticle = new CircleParticle(x,y,10); var p2:CircleParticle = new CircleParticle(x+100,y,10); var p3:CircleParticle = new CircleParticle(x+200,y,10); myEngine.newSpringConstraint(p1,p2,0.8); myEngine.newSpringConstraint(p2,p3,0.5); myEngine.addObject(p1); myEngine.addObject(p2); myEngine.addObject(p3); // p1 は固定する p1.fixed = true; // グラフィックスをp3に接続 bmp.x = - bmp.width/2; //bmp.y = - bmp.height/2; var spr:Sprite = new Sprite(); spr.addChild(bmp); addChild(spr); myEngine.newParticleAttacher(spr, p3); // マウスが押されたら2番目の間接とマウスを結びつける stage.addEventListener(MouseEvent.MOUSE_DOWN, function(e:MouseEvent):void{ mouseAttacher = myEngine.newMouseAttacher(p2, root,3); }); // マウスが離されたら2番目の間接とマウスを切り離す stage.addEventListener(MouseEvent.MOUSE_UP, function(e:MouseEvent):void{ if(mouseAttacher != null) myEngine.removeMouseAttacher(mouseAttacher); }); } } }
スポンサーサイト
Comment
Post a comment