2016-03-10 70 views
0

我想製作一個遊戲,你需要點擊圓圈。點擊它時,每個圓都會變色。我希望它在所有圈子都被點擊時說「恭喜」,但是在剛剛按下一圈後顯示「恭喜」。任何想法如何我可以解決這個問題?當改變路徑onclick的顏色時打印文本

var text = new PointText(view.center); 
text.content = 'Congrats'; 
text.visible = false; 
text.style = { 
    fontFamily: 'Courier New', 
    fontWeight: 'bold', 
    fontSize: 100, 
    fillColor: 'black', 
    justification: 'center' 
} 

for (l = 0; l < balls.length; l++) { 
    balls[l].onClick = function(event) { 
     counter++ 



    this.fillColor = '#860d2b'; 
    var areAnyCoral = false; 
    for (var j = 0; j < balls.length; j++) { 
     if (balls[j].fillColor === 'coral') { 
      areAnyCoral = true; 
     } 
    }; 
    if (areAnyCoral === false) { 
     text.visible = true; 
    } 

} 

}

+0

你看這裏有什麼看起來很好,據我所知。球的變量設置在哪裏?具體來說,他們如何分配fillColor? – dgig

+0

這裏是整個代碼http://goo.gl/MBN5jB – Naomi

+0

看起來ot我喜歡當你創造的球,都有fillColor相當於'珊瑚',所以當一個被點擊,你的球[j] .fillColor == ='珊瑚'總是如此。 – dgig

回答

1

我想你應該檢查對counter,而不是填充顏色,爲text.visible財產。這有意義嗎?

var counter = 0; 
var ball1 = { 
    color: "notCoral" 
}; 

var ball2 = { 
    color: "notCoral" 
} 

var balls = [ball1, ball2]; 

balls.forEach(function(ball) { 
    ball.onClick = function(event) { 
    if (ball.color == "notCoral") { 
     ball.color = "coral"; 
     counter++; 
    } 

    if (counter == balls.length) { 
     text.visible = true; 
    } 
    } 
}); 
+0

是的,這有很大的意義,並非100%確定我能夠實現它,但我認爲這應該工作!謝謝 – Naomi

+0

謝謝,設法做到了。這裏是結果http://naomikudren.com/Lightswitch/ – Naomi