私はランダムに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
}
2体は私が何をしたいのか色
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
が呼び出されるたびに異なる色を返すようにしています。私はそれをどのように達成するのですか?
衝突が発生するたびに** ** 1対の色**(各オブジェクトに1つ)を返すのはどうですか?そうすれば、あなたは彼らが異なっていることを確認することができます。 –
私の答えはここで見ることができます:http://stackoverflow.com/a/36255680/887210 – ColGraff
@KennethBruno私はそれを見て、ちょうどコーディングを学ぶようになった初心者として、私はどのように理解するのに苦労していますそれは私の状況に当てはまるでしょう。 – Sharukh