「Stardust」カテゴリーアーカイブ

Stardust 停止

import idv.cjcat.stardust.common.actions.*;

import idv.cjcat.stardust.common.clocks.*;

import idv.cjcat.stardust.common.initializers.*;

import idv.cjcat.stardust.common.math.*;

import idv.cjcat.stardust.twoD.actions.*;

import idv.cjcat.stardust.twoD.emitters.*;

import idv.cjcat.stardust.twoD.initializers.*;

import idv.cjcat.stardust.twoD.renderers.*;

import idv.cjcat.stardust.twoD.zones.*;

import idv.cjcat.stardust.twoD.fields.*;

import idv.cjcat.stardust.twoD.deflectors.CircleDeflector;

// フレームアクションでPapervision3D

import org.papervision3d.cameras.Camera3D;

import org.papervision3d.events.*;

import org.papervision3d.events.InteractiveScene3DEvent;

import org.papervision3d.objects.DisplayObject3D;

import org.papervision3d.objects.primitives.*;

import org.papervision3d.materials.WireframeMaterial;

import org.papervision3d.materials.utils.MaterialsList;

import org.papervision3d.view.BasicView;

import org.papervision3d.view.*

import org.papervision3d.materials.*

var world:BasicView = new BasicView();

addChild(world);

world.startRendering();

// テクスチャー(=マテリアル)を作ります

//var material:BitmapAssetMaterial = new BitmapAssetMaterial(‘EarthMap’)

var material = new WireframeMaterial(0x999999, .5);

material.doubleSided = true;

var obj = new Plane(material, 5000, 5000, 6,6);

world.scene.addChild(obj);

world.camera.x = 800;

world.camera.z = 600;

//Emitter2D.addInitializer(初期設定)

//(1)Clockを作る…パーティクル発生の頻度

//(2)Emitterを作ってclockをセット…エミッターって発生装置みたいなもの(?)

var clock:SteadyClock =new SteadyClock(5);

var emitter=new Emitter2D(clock);

var clickflag:Boolean = false;//パーティクル生成状態判定用

var sprite:Sprite = new Sprite();

addChild(sprite);

//(3)Rendererを作る…画面表示用オブジェクト(?)

//(4)Renderer.addEmitter( Emitter )でエミッターをレンダラーにセット

//(5)Emitter.addInitializer( 発生場所とか発生させるspiteとか )でエミッターを初期設定

var renderer:DisplayObjectRenderer = new DisplayObjectRenderer(sprite);

renderer.addEmitter(emitter);

//パーティクル自身のクラスを指定(雨粒とか点とかを作るクラス)

var displayObjectClass:DisplayObjectClass = new DisplayObjectClass(star01);

emitter.addInitializer(displayObjectClass);

//パーティクルの速度(?)を指定→idv.cjcat.stardust.twoD.zones 2DのZoneクラス)CircleZone,Line,RectZone,SectorZone,SinglePoint,LazySectorZoneなど

var velocity:Velocity = new Velocity(new LazySectorZone(5, 1));

emitter.addInitializer(velocity);

//パーティクルの固まり具合(?)の範囲

var mass:Mass = new Mass(new UniformRandom(1, 10));

emitter.addInitializer(mass);

// パーティクルの不透明度の範囲

var alpharr:Alpha = new Alpha(new UniformRandom(0.1, 1));

emitter.addInitializer(alpharr);

//パーティクルの寿命の範囲

var life:Life = new Life(new UniformRandom(30, 0));

emitter.addInitializer(life);

// パーティクルの粒の大きさの範囲

var scale:Scale = new Scale(new UniformRandom(0.01, 1));

emitter.addInitializer(scale);

//パーティクルの動く角度の範囲

var rotationn:Rotation = new Rotation(new UniformRandom(5,5));

emitter.addInitializer(rotationn);

//オメガって何ですか?角速度?

var omega:Omega = new Omega(new UniformRandom(5,5));

emitter.addInitializer(omega);

// パーティクルの発生するエリアを指定→idv.cjcat.stardust.twoD.zones2DのZoneクラス)CircleZone,Line,RectZone,SectorZone,SinglePoint,LazySectorZoneなど

var position:Position = new Position(new SinglePoint(300,300));

emitter.addInitializer(position);

//Emitter2D.addAction(アクション)

//(6)Emitter.addAction( 寿命の長さとか重力とか )で実際の動きを設定

//パーティクルの動きを増幅する。例えば2にすれば同じ速度で2回動く(?)

var move:Move = new Move();

emitter.addAction(move);

//範囲指定x:0~1000,y:0~600

//var deathZone:DeathZone = new DeathZone(new RectZone(0, 0, 1000, 600), true);

//emitter.addAction(deathZone);

//ランダムな加速をさせる

var randomDrift:RandomDrift = new RandomDrift(2);

emitter.addAction(randomDrift);

//Fieldオブジェクトに対して重力をかける

var gravity:Gravity = new Gravity();

emitter.addAction(gravity);

//角速度omegaに対して回転数を指定

var spin:Spin = new Spin(1);

emitter.addAction(spin);

// 寿命を有効化

var age:Age= new Age();

emitter.addAction(age);

//消えるを有効化

var deathLife:DeathLife= new DeathLife();

emitter.addAction(deathLife);

//???

var explode:Explode = new Explode(0,0,300,300);

emitter.addAction(explode);

//???

var spawn:Spawn = new Spawn();

emitter.addAction(spawn);

//(7)Event.ENTER_FRAMEやTimerEvent.TIMERに、Emitter.step()を関連づけて表示を更新

stage.addEventListener(MouseEvent.CLICK, downHandler);

function downHandler(e){

if( !clickflag ){// falseなら

clock.ticksPerCall = 5;//パーティクルを1フレごとに5個作る

clickflag = true;

}else{//trueなら

clock.ticksPerCall = 0;//パーティクルは0;

clickflag =false;

}

addEventListener(Event.ENTER_FRAME, emitter.step);

//ENTER_FRAME停止

}

//addEventListener(Event.ENTER_FRAME, emitter.step);

////////////////////////////////////////////

参考サイト

http://blog.rainyday.jp/flash/pv3d/stardust02.html

Stardust 参考

import idv.cjcat.stardust.common.actions.*;

import idv.cjcat.stardust.common.clocks.*;

import idv.cjcat.stardust.common.initializers.*;

import idv.cjcat.stardust.common.math.*;

import idv.cjcat.stardust.twoD.actions.*;

import idv.cjcat.stardust.twoD.emitters.*;

import idv.cjcat.stardust.twoD.initializers.*;

import idv.cjcat.stardust.twoD.renderers.*;

import idv.cjcat.stardust.twoD.zones.*;

//Emitter2D.addInitializer(初期設定)

//(1)Clockを作る…パーティクル発生の頻度

//(2)Emitterを作ってclockをセット…エミッターって発生装置みたいなもの(?)

var emitter:Emitter2D = new Emitter2D(new SteadyClock(1));

var sprite:Sprite = new Sprite();

addChild(sprite);

//(3)Rendererを作る…画面表示用オブジェクト(?)

//(4)Renderer.addEmitter( Emitter )でエミッターをレンダラーにセット

//(5)Emitter.addInitializer( 発生場所とか発生させるspiteとか )でエミッターを初期設定

var renderer:DisplayObjectRenderer = new DisplayObjectRenderer(sprite);

renderer.addEmitter(emitter);

//パーティクル自身のクラスを指定(雨粒とか点とかを作るクラス)

var displayObjectClass:DisplayObjectClass = new DisplayObjectClass(RainDrop);

emitter.addInitializer(displayObjectClass);

// パーティクルの発生するエリアを指定→idv.cjcat.stardust.twoD.zones2DのZoneクラス)CircleZone,Line,RectZone,SectorZone,SinglePoint,LazySectorZoneなど

var position:Position = new Position(new Line(0, 0, 600, 0));

emitter.addInitializer(position);

//パーティクルの速度(?)を指定→idv.cjcat.stardust.twoD.zones 2DのZoneクラス)CircleZone,Line,RectZone,SectorZone,SinglePoint,LazySectorZoneなど

var velocity:Velocity = new Velocity(new LazySectorZone(1, 5));

emitter.addInitializer(velocity);

//パーティクルの固まり具合(?)の範囲

var mass:Mass = new Mass(new UniformRandom(1, 10));

emitter.addInitializer(mass);

// パーティクルの不透明度の範囲

var alpharr:Alpha = new Alpha(new UniformRandom(0.2, 1));

emitter.addInitializer(alpharr);

//パーティクルの寿命の範囲

var life:Life = new Life(new UniformRandom(2, 3));

emitter.addInitializer(life);

// パーティクルの粒の大きさの範囲

var scale:Scale = new Scale(new UniformRandom(0.01, 1));

emitter.addInitializer(scale);

//パーティクルの動く角度の範囲

var rotationn:Rotation = new Rotation(new UniformRandom(5,5));

emitter.addInitializer(rotationn);

//オメガって何ですか?角速度?

var omega:Omega = new Omega(new UniformRandom(5,5));

emitter.addInitializer(omega);

//Emitter2D.addAction(アクション)

//(6)Emitter.addAction( 寿命の長さとか重力とか )で実際の動きを設定

//パーティクルの動きを増幅する。例えば2にすれば同じ速度で2回動く(?)

var move:Move = new Move();

emitter.addAction(move);

//範囲指定x:0~1000,y:0~600

var deathZone:DeathZone = new DeathZone(new RectZone(0, 0, 1000, 600), true);

emitter.addAction(deathZone);

//ランダムな加速をさせる

var randomDrift:RandomDrift = new RandomDrift(2);

emitter.addAction(randomDrift);

//Fieldオブジェクトに対して重力をかける

var gravity:Gravity = new Gravity();

emitter.addAction(gravity);

//角速度omegaに対して回転数を指定

var spin:Spin = new Spin(5);

emitter.addAction(spin);

//???

var explode:Explode = new Explode(0,0,300,300);

emitter.addAction(explode);

//???

var spawn:Spawn = new Spawn();

emitter.addAction(spawn);

//(7)Event.ENTER_FRAMEやTimerEvent.TIMERに、Emitter.step()を関連づけて表示を更新

stage.addEventListener(MouseEvent.MOUSE_DOWN, downHandler);

function downHandler(e){

addEventListener(Event.ENTER_FRAME, emitter.step);

}

//参考サイト http://blog.rainyday.jp/flash/pv3d/stardust5.html

Stardust 1.1.132 Beta

import idv.cjcat.stardust.common.actions.*;

import idv.cjcat.stardust.common.clocks.*;

import idv.cjcat.stardust.common.initializers.*;

import idv.cjcat.stardust.common.math.*;

import idv.cjcat.stardust.twoD.actions.*;

import idv.cjcat.stardust.twoD.emitters.*;

import idv.cjcat.stardust.twoD.initializers.*;

import idv.cjcat.stardust.twoD.renderers.*;

import idv.cjcat.stardust.twoD.zones.*;

stage.scaleMode = StageScaleMode.NO_SCALE;

root.scrollRect = new Rectangle(0, 0, 300, 300);

var emitter:Emitter2D = new Emitter2D(new SteadyClock(1));

var sprite:Sprite = new Sprite();

addChild(sprite);

var renderer:DisplayObjectRenderer = new DisplayObjectRenderer(sprite);

renderer.addEmitter(emitter);

var displayObjectClass:DisplayObjectClass = new DisplayObjectClass(RainDrop);

var position:Position = new Position(new Line(0, 0, 300, 0));

var velocity:Velocity = new Velocity(new SinglePoint(0, 5));

emitter.addInitializer(displayObjectClass);

emitter.addInitializer(position);

emitter.addInitializer(velocity);

var move:Move = new Move();

var deathZone:DeathZone = new DeathZone(new RectZone(0, 0, 300, 300), true);

emitter.addAction(move);

emitter.addAction(deathZone);

addEventListener(Event.ENTER_FRAME, emitter.step);