我有一個功能,將隨機輸出一個SKColor。如何繼續調用一個函數直到它返回一個不同於之前的輸出?
func getRandomColor() -> SKColor{
let randomaval = arc4random_uniform(4)
var color = SKColor()
switch(randomaval)
{
case 0:
color = redColor
case 1:
color = greenColor
case 2:
color = blueColor
case 3:
color = yellowColor
default:()
}
return color
}
當兩個物體發生碰撞我調用這個函數來改變顏色
aball.color = getRandomColor()
if aball.color == redColor && getRandomColor() == redColor {
aball.color = getRandomColor() //to set the color to something other than red
aball.colorBlendFactor = 1.0
}
我想要做的是,當我說aball.color = getRandomColor()
,如果getRandomColor()
是redColor
再次,它需要運行if
再次聲明,直到函數返回redColor
以外的內容。大多數情況下,當我的if
條件成立時,它再次調用redColor
,我無法理解如何避免這種情況。我基本上希望每次調用getRandomColor
時都會返回不同的顏色。我如何實現這一目標?
每次發生碰撞時,如何返回**一對顏色**(每個對象一個)?這樣,你可以確保他們不同。 –
你可以在這裏看到我對類似問題的回答:http://stackoverflow.com/a/36255680/887210 – ColGraff
@KennethBruno我看着它,作爲剛開始學習編碼的初學者,我正在努力理解這將適用於我的情況。 – Sharukh