2016-03-10 44 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