为什么这个以PVector开头的Processing程序会导致错误?

时间:2018-06-15 22:05:37

标签: processing

PVector m3()
{ 
  return null;
}

(是的,这是整个程序)给出了

Error on "PVector"

enter image description here

为什么呢?这看起来很合法。

使用不同的特定于处理的类型会发生同样的失败,例如颜色但不是原生类型,例如浮。

解决方法:

enter image description here

2 个答案:

答案 0 :(得分:1)

这是因为stopasgroup=true killasgroup=true stopsignal=INT ,而不是方法。我认为,如果要使其PVector成为必需,则必须在前面添加return null

void

除非您要创建void PVector m3() { return null; } ,否则只需像创建新对象一样键入它即可。以下是一些示例:

PVector

有关如何使用PVector的更多信息,建议您查看在Processing官方网站上发布的信息。这是链接:https://processing.org/reference/PVector.html

我希望这能回答您的问题,祝您好运!

答案 1 :(得分:-1)

处理有两种模式:

静态模式只是一堆函数调用。在此模式下,Processing只绘制一个图像然后停止。这是一个例子:

background(32);
ellipse(10, 20, 50, 50);

活动模式是包含setup()draw()等功能的草图。在此模式下,Processing在程序启动后继续执行代码:例如,它每秒执行draw() 60次,或者当用户按下鼠标时执行mousePressed()。这是一个例子:

void draw(){
  background(32);
  ellipse(mouseX, mouseY, 25, 25);
}

草图的问题在于Processing不知道您尝试使用哪种模式。它发现您没有setup()draw()函数(或任何其他处理回调函数),因此它认为您正在尝试使用静态模式。但后来它发现你已经定义了一个非回调函数,所以它不知道如何工作。

就像你发现的那样,你的问题的解决方案是添加其他功能,因此Processing可以知道你想要的模式。还要注意你的代码本身没有任何意义,因为Processing有无法访问它。我的猜测是你计划最终添加setup()draw()函数,所以现在就添加它们以消除错误。

欲了解更多信息:

  • 请参阅George的回答here
  • 查看我的回答here
  • 请参阅this GitHub issue,其中Processing的创建者解释了上述所有内容。