We are about to switch to a new forum software. Until then we have removed the registration on this forum.
Hello -
I'm trying to do something similar to the SimpleParticleSystem example, but on opening the example, I am not able to run it. The debugger tells me that "copy" is not defined for Particle p. Given that copy is an inherent function to processing, I'm a little lost as to why this is throwing this error. Here is the code from the processing website:
ParticleSystem ps;
void setup() {
size(640,360);
ps = new ParticleSystem(new PVector(width/2,50));
}
void draw() {
background(0);
ps.addParticle();
ps.run();
}
// A class to describe a group of Particles
// An ArrayList is used to manage the list of Particles
class ParticleSystem {
ArrayList<Particle> particles;
PVector origin;
ParticleSystem(PVector location) {
origin = location.copy();
particles = new ArrayList<Particle>();
}
void addParticle() {
particles.add(new Particle(origin));
}
void run() {
for (int i = particles.size()-1; i >= 0; i--) {
Particle p = particles.copy(i);
p.run();
if (p.isDead()) {
particles.remove(i);
}
}
}
}
// A simple Particle class
class Particle {
PVector location;
PVector velocity;
PVector acceleration;
float lifespan;
Particle(PVector l) {
acceleration = new PVector(0,0.05);
velocity = new PVector(random(-1,1),random(-2,0));
location = l.copy();
lifespan = 255.0;
}
void run() {
update();
display();
}
// Method to update location
void update() {
velocity.add(acceleration);
location.add(velocity);
lifespan -= 1.0;
}
// Method to display
void display() {
stroke(255,lifespan);
fill(255,lifespan);
ellipse(location.x,location.y,8,8);
}
// Is the particle still useful?
boolean isDead() {
if (lifespan < 0.0) {
return true;
} else {
return false;
}
}
}
Thanks all
Answers
https://forum.Processing.org/two/discussion/15473/readme-how-to-format-code-and-text
You've declared that variable particles if of datatype ArrayList.
Whether or not it got some method called copy(), you need to check that out at its class doc page:
http://docs.Oracle.com/javase/8/docs/api/java/util/ArrayList.html
Particle p = particles.copy(i);
replace copy with get
That was it Chrisir! Thank you...