2013-04-26 68 views
0

我有這應該製作一個簡單的火焰效果以下簡單的功能,我建立了代碼的實際顯示部分從這裏開始: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(); 

感謝,任何幫助是非常讚賞: )

+1

Spark.js已過時,與最新版本的Three.js不兼容。我強烈建議使用最新的Three.js版本,但對老版本的支持並不多。這可能意味着你只需要使用沒有spark.js的Three.js粒子系統。 你應該使用'ShaderMaterial'。 – 2013-05-28 02:39:25

+0

我得到了同樣的問題,因爲你有。我搜索了這個問題,而不是去了解'SPARK-js'不再被支持,對於'particle system'我們應該使用最新版本或者去'shaders' – 2013-05-28 02:43:56

回答