所以,如果我有一个班级
class A extends PApplet{
float x;
float y;
public A(float x, float y){
this.x = x;
this.y = y;
}
public void draw(){
ellipse(x,y,10,10);
}
}
和另一个班级
class B extends PApplet{
A a = new A(12,19);
public void draw(){
ellipse(25,25,25,25);
}
}
仅绘制B
中的椭圆。这是两个绘制方法的问题吗?如果没有,问题是什么?有没有办法做这种事情,以便两个省略号出现?这可能与线程有关吗?我已经阅读了一些关于它们但从未使用过它们,所以如果是这样,请解释一下线程。
答案 0 :(得分:2)
以这种方式思考:只有一个草图可以是你"主要"草图。这是调用draw()
函数的草图。处理自动调用此函数。如果你正在使用像eclipse这样的东西,你可以在调用main()
方法时指定主草图。
所有这一切,最简单的方法可能就是从A.draw()
拨打B.draw()
。
如果您这样做,那么A
课程不应该延长PApplet
。只需传入B PApplet
并使用它。把它们放在一起:
class A{
float x;
float y;
PApplet myPApplet;
public A(float x, float y, PApplet myPApplet){
this.x = x;
this.y = y;
this.myPApplet = myPApplet;
}
public void draw(){
myPApplet.ellipse(x,y,10,10);
}
}
class B extends PApplet{
A a = new A(12,19, this);
public void draw(){
ellipse(25,25,25,25);
a.draw();
}
}
将每个PApplet
视为单独的窗口。如果你想要一个窗口,那么你应该只有一个PApplet
。
答案 1 :(得分:0)
如果要使用线程,可以使用Thread
类。线程就像是同一程序中的不同进程。但是,它们可以共享相同的内存 - 这意味着它们都可以使用相同的变量(与不共享内存的进程不同)。然后你就如何正确使用线程问题,你可以看到更多:here
以下是如何使用线程的简单示例:
Thread t = new Thread(new Runnable() {
@Override
public void run() {
//your code
}
});
t.run();//don't forget to run!