2016-11-04 215 views
0

此作業必須是波普藝術,並且我已決定要使用pokeballs。我們必須使用2 for循環:一個用於頂行,一個用於底部並創建一個函數。我遇到的問題是如何在頂行中創建2個更多的pokeballs(總共有6個pokeballs:3個在頂部,3個在底部),這些都是隨機的顏色,同時使用函數調用來實現。在for循環中調用的函數

var RANDCOL = random(0, 400); 
var XBALL = 65; 
var YBALL = 108; 

//dividing tiles 
fill(250, 0, 0); 
rect(0, 0, 130, 200); 
fill(0, 187, 255); 
rect(131, 0, 137, 200); 
fill(0, 0, 0); 
rect(269, 0, 130, 200); 
fill(167, 158, 235); 
rect(0, 200, 131, 199); 
fill(46, 184, 101); 
rect(131, 200, 137, 199); 
fill(255, 0, 0); 
rect(269, 200, 130, 199); 

//pokeball specifications 
var pokeBall = function(x) { 
    stroke(158, 214, 235); 
    ellipse(XBALL, YBALL, 99, 97); 
    fill(0, 0, 0); 
    stroke(0, 0, 0); 
    line(15, 109, 56, 109); 
    line(116, 109, 72, 109); 
    ellipse(64, 108, 19, 16); 
}; 

//loop for top row 
for(var i = 0; i < 3; i++) { 
    var x = i * 134; 
    fill(RANDCOL); 
    pokeBall(); 
} 
+0

爲什麼是用於VAR X,也可以指定您的預期輸出 –

+0

var x = i * 134應該是第一個pokeball,並將其循環2次到其他2個方塊,並且函數中的x參數是我僅僅在玩的東西,以查看它是否執行了任何操作。這是一個谷歌形象,它應該是什麼樣子,除了會有3行不是2. [image](https://www.google.com/search?q=pop+art+pokeballs&source=lnms&tbm=isch&sa= X&ved = 0ahUKEwiczKzsk47QAhUUSGMKHZ6BA7kQ_AUICCgB&biw = 1920&bih = 943#imgrc = mruoTaTG6KZ_lM%3A) – Smokeyflo

+0

這真的只是我有麻煩的循環。 (var y = 3; y <= 3; y ++){var x = 3; x <= 3; x ++){fill(RANDCOL); pokeBall(); } }' – Smokeyflo

回答

0

首先,這代碼不能運行,因爲你使用的處理功能被稱爲setup()函數之前。請嘗試將代碼發佈爲MCVE,我們可以複製並粘貼運行。

無論如何,要實現您的目標,您的pokeBall()函數需要指定球的位置的參數,並且您需要根據這些座標來繪製球。你現在通過使用XBALLYBALL變量來做差不多,但是你需要將這些變量轉換爲參數並從你所描述的for循環中傳入。

下面是一個例子。比方說,我有這樣的功能:

function drawBall(){ 
    ellipse(100, 150, 20, 20); 
} 

這個函數總是打圈的座標100,150。我可以改變,要使用參數,而不是:

function drawBall(ballX, ballY){ 
    ellipse(ballX, ballY, 20, 20); 
} 

然後我可以調用該函數並傳遞參數繪製在多個地方圈:

drawBall(100, 200); 
drawBall(200, 300); 
drawBall(60, 20); 
+0

謝謝!是否有可能在for循環中只調用一次函數,所以循環會繪製3次,而不是必須調用函數3次?因爲我認爲3次調用該函數會失去進行for循環的目的,不是嗎? – Smokeyflo

+0

就像我試圖做到這一點,所以pokeball分散了134個x單元,但for循環根本不執行,我嘗試了許多不同的東西。 (var x = 0; x <= 3; x ++){var x_one = pokeBall * 134; (隨機(0,400),隨機(0,400),隨機(0,400),隨機(0,400)); pokeBall(68,107,x_one);' – Smokeyflo

+0

@Smokeyflo我三次調用函數只是一個例子。你可以絕對用'for'循環來調用它。 –