在Scala中运行处理PApplet

qed*_*qed 3 processing scala intellij-idea

这是代码:

import processing.core._
import PConstants._
import PApplet._

class PApp extends PApplet{
  args = Array("PApp")
  var x: Float = 0.0f
  var y: Float = 0.0f
  var z: Float = 0.0f

  override def setup(): Unit = {
    size(200, 200, "P3D")
    x = width/2
    y = height/2
    z = 0
  }

  override def draw(): Unit = {
    translate(x, y, z)
    rectMode(CENTER)
    rect(0, 0, 10, 10)
    z += 1
  }
}
Run Code Online (Sandbox Code Playgroud)

如果我尝试运行它(intellij中的ctrl-shift-R),我会收到以下消息:

Usage: PApplet [options] <class name> [sketch args]
See the Javadoc for PApplet for an explanation.
Run Code Online (Sandbox Code Playgroud)

并且没有图形出现.我怎么解决这个问题?

小智 6

您应该在运行配置中填写"程序参数:"选项.
这就像我在这种情况下设置的选项:


g-m*_*ark 6

如错误消息中所述:

用法:PApplet [options] <class name> [sketch args]

这意味着当PApplet运行时,它至少需要一个参数 - <class name>- 草图的完整类路径.的optionsSketch Args是可选的,由方括号所指示的.

所以,如果你有这样的草图:

package com.something.nice;

public class MySketch extends PApplet
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

然后,您需要将com.something.nice.MySketch参数作为参数传递给您的应用程序.

在IntelliJ IDEA中,您可以在"程序参数"字段中的构建配置(通过菜单:运行 - >编辑配置...)中执行此操作.

此要求是从处理v2更改为v3的结果.

Applet已经消失 - Java的java.awt.Applet不再是PApplet使用的基类,因此需要重写任何使用Applet特定方法(或假设PApplet是Java AWT组件对象)的草图.

您可能还想注意这个(相同的文档):

在幕后调用的新settings()方法.大多数用户永远不会注意到这一点,但是如果你在没有预处理器的情况下使用Processing(即从Eclipse或类似的开发环境),那么就调用size(),fullScreen(),smooth(),noSmooth()和pixelDensity()进入该方法.更多信息可以在参考资料中找到.只有处于其他开发环境中的用户才应使用settings().它不应该用于任何其他目的.