我有這應該製作一個簡單的火焰效果以下簡單的功能,我建立了代碼的實際顯示部分從這裏開始:three.js所Sparks.js - 「斷言失敗,池跑出」
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();
感謝,任何幫助是非常讚賞: )
Spark.js已過時,與最新版本的Three.js不兼容。我強烈建議使用最新的Three.js版本,但對老版本的支持並不多。這可能意味着你只需要使用沒有spark.js的Three.js粒子系統。 你應該使用'ShaderMaterial'。 – 2013-05-28 02:39:25
我得到了同樣的問題,因爲你有。我搜索了這個問題,而不是去了解'SPARK-js'不再被支持,對於'particle system'我們應該使用最新版本或者去'shaders' – 2013-05-28 02:43:56