2015-07-03 54 views
-1

我目前正在學習如何在可汗學院編碼javascript。我正在研究fish tank projectmouseClicked不能用if語句來調用函數

代碼

background(89, 216, 255); 

var centerX ; 
var centerY ; 
var bodyLength = 118; 
var bodyHeight = 74; 

var drawFish = function(centerX, centerY) { 
noStroke(); 
fill (random(1,255), random(1,255), random(1,255)); 
// body 
ellipse(centerX, centerY, bodyLength, bodyHeight); 
// tail 
var tailWidth = bodyLength/4; 
var tailHeight = bodyHeight/2; 
triangle(centerX-bodyLength/2, centerY, 
     centerX-bodyLength/2-tailWidth, centerY-tailHeight, 
     centerX-bodyLength/2-tailWidth, centerY+tailHeight); 
// eye 
fill(33, 33, 33); 
ellipse(centerX+bodyLength/4, centerY, bodyHeight/5, bodyHeight/5); 
}; 

if(mouseClicked) { 
    drawFish(random(1,400), random(1,400)); } else { text ("Left click to add fish!", 100, 100); } 

它的工作原理,如果我只是調用的函數多次與複製和粘貼,但我想它,如果我點擊了屏幕上工作。我也試過它也與mousePressedmouseIsPressed

+0

是什麼 「的mouseClicked」 ???在哪裏設置??? ???可能是有用的看到你的完整代碼 – lem2802

+0

CODE:mouseClicked = function(){ drawFish(random(1,400),random(1,400));};這樣可行。 –

回答

0

mouseClicked在您的代碼中似乎沒有任何東西。寧可使用onClick。例如:

var element = document.getElementById("id"); 
element.onclick = function() { 
     drawFish(random(1,400), random(1,400)); 
} 

或者,只需點擊文件(或調用頁),用途:

document.onclick = function() { 
      drawFish(random(1,400), random(1,400)); 
    } 
+0

mouseClicked是網站khanacademy添加的內容...林不知道究竟是什麼。 –

+0

他們可能會在某處設置它的值,不用擔心,試着用我寫的代碼替換'if(mouseclicked)..... else ...',然後檢查它,希望能夠工作。 –

-1

在javascript中,mouseevents通過指定要作用的HTML區域或對象來決定。如果你想在屏幕上繪製的魚,你可以做

document.getElementById('body').onclick = function() { 
    drawFish(...) //with your random place 
} 

的「身體」部分可以根據您想要鼠標點擊事件是有效的改變。我假設這個項目使用html,所以標籤應該工作正常。但是,你也可以做

document.onclick = function() { 

} 

作爲一個全球性的事件處理程序

我不知道的mouseClicked是什麼,但是你要抽籤的方法來觸發鼠標點擊。因此,如果您的mouseClicked變量在某些其他方法中動態更改,則應該也發佈該代碼。

0
mouseClicked = function() { 
    drawFish(random(1,400), random(1,400));}; 

如果我使用該代碼似乎工作。有誰知道我可以如何使用它,但只有它創建一條新的魚,如果我有鼠標X和鼠標Y在某個位置?

+0

或者我怎麼能這樣做,當有10條魚重新啓動,沒有魚? –

0

我做了這樣的幾次嘗試後:

var drawBubble = function() { 

    var bubbleX = (mouseX); 
    var bubbleY = (mouseY); 
    stroke(255, 255, 255); 
    noFill(); 
    ellipse (bubbleX,bubbleY,20,20); 
    fill(250, 250, 250); 
    ellipse (bubbleX + 5, bubbleY - 2, 5,5); 
}; 

var mouseClicked = function(){ 
    drawBubble (mouseX,mouseY); 
};