import java.util.Iterator;
ParticleSystem ps;
Particle p;
void steup(){
size(200,200);
ps = new ParticleSystem();
}
void draw(){
background(255);
ps.run();
}
class ParticleSystem{
ArrayList<Particle> particles;
ParticleSystem(){
particles = new ArrayList<Particle>();
}
void addParticle(){
particles.add(new Particle());
}
void run(){
Iterator<Particle>it = particles.iterator();
while(it.hasNext()){
Particle p = it.next();
p.run();
if(p.isDead()){
it.remove();
}
}
}
}
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();
}
void update(){
velocity.add(acceleration);
location.add(velocity);
lifespan -= 2.0;
}
void display(){
stroke(0,lifespan);
fill(0,lifespan);
ellipse(location.x,location.y,8,8);
}
boolean isDead(){
if(lifespan < 0.0){
return true;
}else{
return false;
}
}
}
Yes it is undefined. You have defined Particle constructor with PVector parameter Particle(PVector l){
, but you haven’t defined constructor without parameters Particle(){
as you try to use it.
3 Likes
OH.I was negligent about this and your help allowed me to solve the error in an instant.very thanks
You have misspelled void setup()
and ps is not created before you call it.
1 Like
But how do I create it
import java.util.Iterator;
ParticleSystem ps;
Particle p;
void setup(){
size(400,400);
ps = new ParticleSystem();
}
void draw(){
background(255);
ps.run();
}
class ParticleSystem{
ArrayList<Particle> particles;
ParticleSystem(){
particles = new ArrayList<Particle>();
}
void addParticle(){
particles.add(new Particle());
}
void run(){
Iterator<Particle>it = particles.iterator();
while(it.hasNext()){
Particle p = it.next();
p.run();
if(p.isDead()){
it.remove();
}
}
}
}
class Particle{
PVector location;
PVector velocity;
PVector acceleration;
float lifespan;
Particle(){
acceleration = new PVector(0,0.05);
velocity = new PVector(random(-1,1),random(-2,0));
location = location.copy();
lifespan = 255.0;
}
void run(){
update();
display();
}
void update(){
velocity.add(acceleration);
location.add(velocity);
lifespan -= 2.0;
}
void display(){
stroke(0,lifespan);
fill(0,lifespan);
ellipse(location.x,location.y,8,8);
}
boolean isDead(){
if(lifespan < 0.0){
return true;
}else{
return false;
}
}
}
This creates an empty storage for Particles. To get something going on you need to add Particles the storage. You can add Particle with command ps.addParticle()
1 Like
yea very thankyou,I learning
1 Like