0
我正在嘗試編寫一個例程來擲骰子。在登陸最終號碼之前,我想讓臉部改變幾次。下面的代碼不會顯示換模的面孔。我添加了睡眠聲明,希望它能給它更新的時間,但它只是保持初始狀態直到結束,然後顯示最後一張臉。在更改紋理以強制更新視圖後是否添加語句?加載圖像時不更新直到結束
func rollDice() {
var x: Int
for var i = 0; i < 50; i++
{
x = GKRandomSource.sharedRandom().nextIntWithUpperBound(6)
let texture = dice[0].faces[x]
let action:SKAction = SKAction.setTexture(texture)
pieces[3].runAction(action)
pieces[3].texture = dice[0].faces[x]
NSThread.sleepForTimeInterval(0.1)
print(x)
}
}
直到函數退出後的某個時候,屏幕纔會繪製。您需要設置模具面,然後設置一個計時器以便稍後更新下一個面並允許該功能退出。如果不這樣做,死亡總是會顯示你設定的最後一張臉。 – BergQuester
爲什麼你把當前的線程睡覺?我想這是主線程?應用程序應該儘可能地進行響應(按照文檔)。你在使用SpriteKit嗎?如果是這樣,請使用SKAction或update:方法及其傳遞的與時間相關的action的curentTime參數。 – Whirlwind