我在ArrayList / Particle系统上做了一个非常基础的教程。我一直得到一个"构造函数是未定义的错误"我无法弄清楚原因。谷歌搜索提出了许多更复杂的问题/答案。我错过了什么?这是去年的变化了吗?
ArrayList<Particle> plist;
void setup(){
size(640, 360);
plist = new ArrayList<Particle>();
println(plist);
plist.add(new Particle());
}
void draw(){
background(255);
}
class Particle {
PVector location;
PVector velocity;
PVector acceleration;
float lifespan;
Particle(PVector l){
// For demonstration purposes we assign the Particle an initial velocity and constant acceleration.
acceleration = new PVector(0,0.05);
velocity = new PVector(random(-1,1),random(-2,0));
location = l.get();
lifespan = 255;
}
void run(){
update();
display();
}
void update(){
velocity.add(acceleration);
location.add(velocity);
lifespan -= 2.0;
}
void display(){
stroke(0, lifespan);
fill(175, lifespan);
ellipse(location.x, location.y,8,8);
}
boolean isDead(){
if(lifespan < 0.0){
return true;
}else{
return false;
}
}
}
答案 0 :(得分:2)
这是您的Particle
构造函数:
Particle(PVector l){
请注意,它需要一个PVector
参数。
这就是您调用Particle
构造函数的方式:
plist.add(new Particle());
此行有错误:the constructor
粒子()does not exist.
这正是您的问题所在。构造函数Particle()
不存在。仅存在Particle(PVector)
。
换句话说,请注意您没有给它PVector
个参数。那是你的错误告诉你的。
要解决此问题,您需要提供PVector
参数,或者需要更改构造函数以使其不再需要。