1

处理中的类中是否可以有另一个循环?

在主类中,我可以有一个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”的东西,我将在主类中实例化,除了我在处理中执行此操作。是否可以在处理中做到这一点?

4

1 回答 1

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);
  }
}

并实例化传递“this”作为参数

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

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

于 2014-11-17T23:36:20.483 回答