在Processing中的类中是否可以有另一个循环?

时间:2013-10-25 07:37:11

标签: java processing

在Processing中的类中是否可以有另一个循环?

在主类中,我可以拥有一个在每一帧上运行的draw()函数。但是我希望我的其他类具有相同的功能,这样我就不必转储我在主类中每个帧运行的所有内容。它还使我的代码更清洁。

这是我尝试过的并没有真正起作用的东西:

这是我的课程:

public class MyClass {

  private int backgroundColour = 0;

  public MyClass () {
  }

  public void draw() {
    background(backgroundColour++, 0, 0);
    println(backgroundColour);
  }
}

如果我要在我的主类中实例化这样的话:

MyClass myClass;
void setup() {
  myClass = new MyClass();
}

我没有在每一帧上看到控制台上的颜色变化和线条打印。当然,我可以在我的主类的myClass.draw()函数中调用draw(),但就像我说的那样,我希望我可以让依赖类自己处理它们自己的东西。

所以,来自一个Actionscript背景,我试图在类中实现类似于另一个“ENTER_FRAME”的类型,我将在主类中实例化,除了我在Processing中这样做。是否可以在Processing中执行此操作?

1 个答案:

答案 0 :(得分:1)

是的,你可以。试试这段代码:

import processing.core.*;

public class MyClass implements PConstants {

  PApplet parent;
  private int backgroundColour = 0;

  public MyClass (PApplet parent) {
    this.parent = parent;
    parent.registerMethod("draw", this);
  }

  public void draw() {
    parent.background(backgroundColour++, 0, 0);
    parent.println(backgroundColour);
  }
}

实例化传递"这个"作为参数

MyClass myClass;
void setup() {
  myClass = new MyClass(this);
}

您应该遵循本教程https://github.com/processing/processing/wiki/Library-Basics