2016-10-11 29 views
1

我可能在這裏丟失了一些非常明顯的東西。我可以在全局模式下使用p5.js,並且可以使用textAlign的常量而不會出現問題,例如中央。爲什麼在實例模式下使用p5.js時常量沒有定義?

這裏是全球模式的代碼在那裏工作得很好:

function setup() { 
    var canvas = createCanvas(720, 400); 
    canvas.parent('main_canvas'); 
}; 

function draw() { 
    textSize(32); 
    textAlign(CENTER); 
    text("word", 50, 50); 
}; 

然而,當我嘗試用實例方式CENTER我得到:

Uncaught ReferenceError: CENTER is not defined: 

這裏是實例模式代碼而失敗:

var s = function (p) { 
    p.setup = function() { 
    p.createCanvas(720, 400); 
    }; 

    p.draw = function() { 
    p.textSize(32); 
    p.textAlign(CENTER); 
    p.text("word", 50, 50); 
    }; 
}; 
var myp5 = new p5(s,'main_canvas'); 

上什麼,我在這裏失蹤的任何想法?

回答

1

在全局模式下,所有P5.js函數和變量被添加到全局名稱空間。在實例模式下,所有的P5.js功能和變量加入到傳遞到草圖功能的變量(在你的情況,你的p變量)。

要使用CENTER變量,您必須通過p變量得到它。

換句話說,你需要做的是:

p.textAlign(p.CENTER); 

您還可以與其他變量要做到這一點,像mouseXmouseY

+2

的恥辱,我覺得現在沒有界限。謝謝。 –

+0

@e_r我認爲你剛剛描述了所有編程的75%! :p –

相關問題