2017-10-10 3 views
0

Angenommen, ich habe mehrere P5-Leinwände auf einer Seite, und ich habe mich dafür entschieden, sie zu zerlegen. Da viele der Methoden dieselben Operationen ausführen, habe ich eine Superklasse erstellt. Es sieht etwa so aus:Übergeben von Werten in die Leinwand von p5, Instanziierung

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

    p.draw = function() { 
    } 
} 

Ich werde eine Unterklasse erstellen haben und übergeben diese in einen neuen p5-Objekt, wie folgt aus:

var myP5 = new p5(BasicCanvas); 

Wie soll ich mich über eine Unterklasse von meiner Schaffung Super so kann es in die p5 Konstruktorfunktion übergeben werden? Mein Idealcode-Setup sieht so aus:

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); 

Aber aus Java kommend, habe ich Schwierigkeiten, die Unterschiede zu umgehen. Kannst du helfen?

Vielen Dank!

Antwort

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) 

Hinweis: super ist ein reserviertes Schlüsselwort in Javascript

Verwandte Themen