2017-10-10 55 views
0

假设我在一个页面上有几个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

保留关键字