我想使用createGraphics函数在另一个屏幕上绘制内容...然后将其粘贴到我的主草图中..
在文档中,他们给出的例子是:function drawGradient() {
for (let r = canvasX; r > 0; --r) {
let lightnes = map(r,0,canvasX,360,0)
fill(360, 360, lightnes)
ellipse(0, 0, r, r)
}
}
但我想做的事情比 pg.background(51)
更复杂我想运行这个创建径向渐变的函数:
$gold = $_SESSION['Gold'] = $_SESSION['Gold'] - 50;
$attackDamage = $_SESSION['AtkDmg'] = $_SESSION['AtkDmg'] + 5;
但是如果我做了vignette.drawGradient()我得到错误:vignette.drawGradient不是函数...
那么我怎样才能在createGraphics函数中执行drawgradient函数中的内容呢?
以下是codepen:http://www.redmine.org/issues/8842
答案 0 :(得分:1)
你不会在createGraphics()
函数内部放置任何内容。 createGraphics()
函数返回p5.Renderer
的实例。然后,您可以在该实例上调用函数。
您尝试拨打vignette.drawGradient()
时正朝着正确的方向前进,但就像您发现的那样,p5.Renderer
不包含drawGradient()
功能。只有你的草图包含该功能,因为它是你创建的。
p5.Renderer
包含绘图功能:background()
,fill()
,rect()
和ellipse()
等内容。因此,如果要将渐变绘制到vignette
渲染器,则必须调用实际在vignette
变量上绘制内容的函数。像这样:
function drawGradient() {
for (let r = canvasX; r > 0; --r) {
let lightnes = map(r,0,canvasX,360,0)
vignette.fill(360, 360, lightnes)
vignette.ellipse(0, 0, r, r)
}
}