【问题标题】:Why does this Processing program starting with PVector cause an error?为什么这个以 PVector 开头的处理程序会导致错误?
【发布时间】:2018-11-25 18:00:50
【问题描述】:
PVector m3()
{ 
  return null;
}

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

Error on "PVector"

为什么?在我看来它是合法的。

同样的失败发生在不同的处理特定类型上,例如颜色但不是原生类型,例如浮动。

解决方法:

【问题讨论】:

标签: processing


【解决方案1】:

这是因为PVector 是一个,而不是一个方法。我想如果你想成为return null,你必须在前面加上void

void PVector m3() {
    return null;
}

除非您想创建一个PVector,否则您只需像创建一个新对象一样键入它。以下是一些示例:

PVector m3 = null;
PVector m1 = new PVector();
PVector m2 = new PVector(2, 3);

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

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

【讨论】:

    【解决方案2】:

    处理工作有两种模式:

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

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

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

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

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

    正如您所发现的,您的问题的解决方案是添加其他函数,以便 Processing 可以知道您想要处于哪种模式。另外请注意,您的代码本身没有任何意义,因为 Processing 具有没有办法访问它。我的猜测是您计划最终添加 setup()draw() 函数,所以现在添加它们以消除您的错误。

    更多信息:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-21
      相关资源
      最近更新 更多