2016-12-27 5 views
-1

Ich habe eine Reihe von Code, den ich von jemandem auf youtube kopiert habe und ich verstehe völlig, und es gibt einige ungenutzte Logik drin aber im Grunde im Moment ist alles, was es tun soll, greifen die rocket.show Funktion und zeichnen ein Rechteck und Ich kann nicht für das Leben von mir herausfinden, warum es nicht so ist. es wirft keine fehler aus und zeichnet den hintergrund, ich kann das rechteck zeichnen, wenn ich einfach den code für "rect ..." in die draw-funktion lege, daher gibt es ein problem mit der weise, dass ich mich auf die funktion beziehe, aber ich kann nicht für das Leben von mir arbeiten, der Code ist unten, jede Hilfe würde geschätzt werden.Warum wird mein Programm nicht mein Rechteck zeichnen?

function setup() { 
    createCanvas(800, 600); 
    background(0); 
    rocket = new rocket(); 
} 

function draw() { 
    rocket.update; 
    rocket.show; 
} 

function rocket() { 

    this.pos = createVector(); 
    this.vel = createVector(); 
    this.acc = createVector(); 

    this.applyforce = function (force) { 
     this.acc.add(force); 
    } 

    this.update = function() { 
     this.vel.add(this.acc); 
     this.pos.add(this.vel); 
     this.acc.mult(0); 
    } 

    this.show = function() { 
     push(); 
     translate(this.pos.x, this.pos.y); 
     rotate(this.vel.heading()); 
     rectMode(CENTER); 
     rect(0, 0, 10, 50); 
     pop(); 
    } 
} 

edit: ich es hat geklappt, sorry für unnötige Buchungs Raum

Antwort

0

Sie rufen Ihre Funktionen nicht ordnungsgemäß auf.

In Javascript, Funktionen sind Variablen, so kann ich a = Math.floor sagen, und dann kann ich a(1.76) aufrufen und 1 als Antwort erhalten. Dies bedeutet jedoch, dass Sie beim Aufruf einer Funktion immer Parameter angeben müssen, auch wenn Sie keine verwenden. Sie tun dies mit einem leeren Satz Klammern. Wenn Sie diese Klammern nicht einschließen, ruft das, was Sie tun, im Wesentlichen console.log(whatever function) auf.

In Ihrem Fall bedeutet dies, Sie rocket.update und rocket.show mit rocket.update() und rocket.show()

0

Nach rocket.update Aufnahme es so aussehen muss: rocket.update();. Mein Fehler.

+0

Update und Show sind Funktionen ersetzen müssen, so dass Sie einen Anruf benötigen: rocket.update(); und rocket.show(); – Damian

+0

Bearbeiten Sie in Zukunft Ihren Code in der Frage, anstatt eine Antwort zu posten. –

+1

Nevermind, ich sehe ... Das war das Problem;) –