2017-10-10 13 views
0

私は1ページにいくつかのp5キャンバスを持っていて、それらを分割するためにインスタンス化を使うことを選択したとしましょう。多くのメソッドで同じ操作が実行されるため、スーパークラスを作成しました。それはこのようなものになります。p5のキャンバスに値を渡す、インスタンス化する

var BasicCanvas = function(p) { 
    p.setup = function() { 
     p.createCanvas(100, 100); 
     p.background(0); 
    } 

    p.draw = function() { 
    } 
} 

を私はこのような、サブクラスを作成し、新しいp5のオブジェクトにこれを渡す必要があります:

var myP5 = new p5(BasicCanvas); 

は、どのように私は私のサブクラスを作成に取り掛かる必要がありますそのような方法でスーパーは、p5のコンストラクタ関数に渡すことができますか?私の理想的なコード設定は次のようになります:

var super = function(p) { 
    p.setup = function() { creation } 
} 

var sub1 = function(p) { 
    p.draw = function() { circles } 
} 

var sub2 = function(p) { 
    p.draw = function() { squares } 
} 

var myP5 = new p5(sub1); 
var myP52 = new p5(sub2); 

しかし、Javaから来て、私はいくつかの違いを回避するのが難しいです。手伝ってくれますか?

ありがとうございました!

答えて

1
var superFunction = function(p) { 
    p.setup = function() { 
     p.createCanvas(200, 150) 
     p.noStroke() 
    } 
} 

var sub1 = function(p) { 
    superFunction(p) 
    p.draw = function() { 
     p.background(50) 
     p.fill("blue") 
     p.rect(20,20,50,50) 
    } 
} 

var sub2 = function(p) { 
    superFunction(p) 
    p.draw = function() { 
     p.background(100) 
     p.fill("red") 
     p.rect(20,20,50,50) 
    } 
} 

var myP5 = new p5(sub1) 
var myP52 = new p5(sub2) 

注:superはJavascript

の予約キーワードです
関連する問題