2016-09-15 11 views
1

Ich mache ein wirklich grundlegendes Tutorial über ArrayList/Particle-Systeme. Ich bekomme immer einen "Konstruktor ist undefined Fehler" und ich kann nicht herausfinden, warum. Googeln bringt viele kompliziertere Fragen/Antworten mit sich. Was vermisse ich? Hat sich das im letzten Jahr geändert?Konstruktor nicht definiert [Verarbeitung]

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; 
    } 
    } 
} 

Antwort

2

Dies ist Ihr Particle Konstruktor:

Particle(PVector l){ 

Beachten Sie, dass es ein PVector Argument.

Dies ist, wie Sie den Particle Konstruktor sind Aufruf:

plist.add(new Particle()); 

Diese Linie hat einen Fehler: the constructor Particle() does not exist. Und das ist genau das, was dein Problem ist. Der Konstruktor Particle() existiert nicht. Nur Particle(PVector) existiert.

Mit anderen Worten, beachten Sie, dass Sie es nicht ein PVector Argument geben. Das ist es, was dein Fehler dir sagt.

Um dies zu beheben, müssen Sie entweder ein PVector Argument angeben, oder Sie müssen den Konstruktor ändern, sodass er nicht mehr benötigt wird.

+0

Ahh ok. Konstruktoren und Klassen sind neu für mich. Fehler ist weg. Ich werde etwas über Konstruktoren lesen. –

+0

@mishap_n Wenn es um Parameter geht, sind Konstruktoren vielen Funktionen ähnlich. Sie erhalten einen ähnlichen Fehler, wenn Sie versuchen, die Funktion 'ellipse() 'ohne Parameter aufzurufen. –

Verwandte Themen