単純な炎の効果を生成することになっている次の単純な関数があります。ここからコードの実際の表示部分を作成します。
http://jeromeetienne.github.io/sparkseditor/
関数を実行するたびに、プール (最大粒子数) を使い果たしたように見え、画面にその痕跡が見えなくなります。私はr53を使用していますが、sparks.jsの例のすべてではないにしても多くがr47を使用していますが、これが関連しているかどうかはわかりません.
ここでエラーを生成する実際のファイルを見つけることができます:
http://jeromeetienne.github.io/threex/docs/threex.sparks.html
そして、以下の私の炎のコード:
var position = data.status.position;
var group = new Object3D();
scene.add(group);
var sparks = new THREEx.Sparks({
maxParticles : 10,
counter : new SPARKS.SteadyCounter(300)
});
var emitter = sparks.emitter();
var color = function() {
this.initialize = function(emitter, particle) {
particle.target.color().setHSV(0.4, 0.8, 0.4);
particle.target.size(100);
};
};
emitter.addInitializer(new color());
emitter.addInitializer(new SPARKS.Position(new SPARKS.PointZone(new THREE.Vector3(
position.x, position.y, position.z
))));
emitter.addInitializer(new SPARKS.Lifetime(0, 0.8));
emitter.addInitializer(new SPARKS.Velocity(new SPARKS.PointZone(new THREE.Vector3(
position.x, position.y-100, position.z
))));
emitter.addAction(new SPARKS.Age());
emitter.addAction(new SPARKS.Move());
emitter.addAction(new SPARKS.RandomDrift(1000,0,1000));
emitter.addAction(new SPARKS.Accelerate(0,-200,0));
emitter.addCallback('created', function(particle) {
group.add(particle);
});
emitter.addCallback('dead', function(particle) {
particle.target.visible = false;
group.remove(particle);
});
emitter.start();
事前に感謝します。どんな助けでも大歓迎です:)