2012-03-30 17 views
0

これは少し特殊すぎるかもしれませんが、ここで誰かがtoxiclib.jsのパーティクルクラスを拡張した経験がありますか?Toxiclibs.jsパーティクルクラスを拡張する

私は入れません:

TypeError: this.setWeight is not a function 

私は(私はProcessing.jsを使用しています)非常に単純なことをやっています:Processing.jsと他のライブラリとの

class Particle extends VerletParticle2D { 

    Particle(float x, float y) { 
     super(x,y); 
    } 

    void display() { 
     stroke(0); 
     ellipse(x,y,16,16); 
    } 
    } 

答えて

1

継承は、すべて考え出していませんまだアウト。回避策があります。

まず最初は、その完全な名前空間によってVerletParticle2Dを参照することです:

class Particle extends toxi.physics2d.VerletParticle2D 

第二の部分は、(これを書いている時点で、それはライン#9941でVerletParticle2Dためtoxiclibs.js'コンストラクタにこれを追加することですビルド/ toxiclibs.jsの

if(!(this instanceof VerletParticle2D)){ 
     return new VerletParticle2D(x,y,w); 
    } 

第3部では、クラスを定義した後にこれらの2行を追加します。残念ながら、これらの2行はProcessing IDEでうまく再生されません。これらの3つのパターンは他のクラスにも適用できます。 また、Processing 2.0 Alpha 5では、付随する.jarの隣に.jsファイルを作成する新しい機能がリリースされました。したがって、toxiclibscore.jarの隣にtoxiclibs.jsを置き、名前を変更すると、スケッチでエクスポートされます。これにより、クラスを拡張するためのいくつかの変更を加えた1つのバージョンを簡単に作成できます。

私はここでファイルtoxiclibscore.js変更して、ウェブ・エクスポートされたスケッチをアップロードした:最高の幸運http://haptic-data.com/toxiclibsjs/misc/ToxiclibsjsExtend.zip

+0

大変ありがとうございます! – Stpn

+0

こんにちは私はこのアプローチを試して、それは他のクラスを拡張するために動作しますが、私は物理学に拡張クラスを追加するための最良の方法をお勧めできますか?これはphysics.addParticle(extendedParticle)のように見えます。実際には動作しません..または私は何か間違っている可能性があります。 – Stpn

関連する問題