2016-12-27 106 views
-1

我有一套代碼,我從YouTube上的某個人複製而來,我完全理解,並且在那裏有一些未使用的邏輯,但基本上此刻它所要做的就是抓取rocket.show函數並繪製一個矩形並我不能爲我的生活找出爲什麼它不這樣做。它拋出沒有錯誤和繪製背景,我可以繪製矩形,如果我只是把代碼「rect ...」放在draw函數中,因此我指的是函數的方式有問題,但我不能爲我的生活工作,代碼在下面,任何幫助將不勝感激。爲什麼我的程序不能繪製我的矩形?

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

編輯:我的工作了,很抱歉佔用不必要的空間張貼

回答

0

你沒有正確地調用你的函數。

在JavaScript中,函數是變量,所以我可以說a = Math.floor,然後我可以撥打a(1.76)並獲得1作爲迴應。然而,這意味着,無論何時調用函數,即使不使用任何參數,也必須包含參數。你用一組空括號來做到這一點。如果你不包括這些圓括號,你所做的實質上是調用console.log(whatever function)

在你的情況,這意味着你需要rocket.update()rocket.show()

0

rocket.update後,它需要這個樣子: rocket.update();。我的錯。

+0

更新,並顯示更換rocket.updaterocket.show的功能,所以你需要一個電話:rocket.update();和rocket.show(); – Damian

+0

將來,請編輯問題中的代碼,而不是發佈答案。 –

+1

沒關係,我看...那是_was_問題;) –

相關問題