Graphics 超越p5.js中的background()函数?

Graphics 超越p5.js中的background()函数?,graphics,background,processing,p5.js,Graphics,Background,Processing,P5.js,我在p5.js中使用旋转和弧度绘制了一个银河系草图,但每次在运行draw()时加载background()时,它都会被删除。有没有办法超越background()函数?我想让星系留在视野中 var星; 函数预加载(){ //对于(var i=0;i

我在p5.js中使用旋转和弧度绘制了一个银河系草图,但每次在运行draw()时加载background()时,它都会被删除。有没有办法超越background()函数?我想让星系留在视野中

var星;
函数预加载(){
//对于(var i=0;i
好吧,它真的没有什么神奇之处。调用
background()
函数会用纯色(或图像)填充窗口,并覆盖以前绘制的任何内容

这个问题的解决方案不是“超越”
background()
函数。而是重新构造程序,使您的内容正确绘制。具体操作方式取决于您希望发生的事情

选项1:只调用
background()
函数一次

如果开始时只需要一个黑色背景,并且从
draw()
函数执行的所有操作都应该累加起来,那么您可能只需要调用
background()
函数一次。例如,您可以将其作为
setup()
函数的最后一行

选项2:将要绘制的所有内容存储在数据结构中

这可能是最典型的情况。如果您希望在移动的形状后面绘制背景,则必须将这些形状存储在某种数据结构中,然后在每一帧中绘制所有形状

选项3:绘制屏幕外图像,然后在背景上绘制该图像

这是前两个选项之间的混合。您可以将所有内容(背景除外)绘制到屏幕外的
PImage
,然后将背景绘制到屏幕上,然后将图像绘制到屏幕上。这允许您拥有一个可以更改颜色的背景,而无需重新绘制其他内容


您选择哪一个选项实际上取决于您希望发生的事情。

谢谢!我将它放在安装程序()中,一切看起来都很好。我希望我能用联邦快递将纸杯蛋糕发送给您。哈!谢谢。不过我不确定纸杯蛋糕是否能通过邮件顺利送达!