在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中执行此操作?
答案 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