0
你能告訴我爲什麼這段代碼不起作用嗎?是不是可以在SKAction.runBlock()函數中運行一個Action?Swift SpriteKit在SKAction.runBlock()運行SKAction
let testaction = SKAction.repeatActionForever(SKAction.runBlock({self.myFunction()}))
runAction(testaction)
這裏是我的testaction:
func myFunction() {
runAction(SKAction.runBlock({
let i = 0
print(i)
}))
}
我需要這一場比賽。我想區分myFunction中的某些情況以在不同情況下運行不同的操作。我做錯了什麼?
編輯:當我將myFunction()更改爲此時,我打印1永遠,但不是從runBlock內部0。
func myFunction() {
let j = 1
print(j)
runAction(SKAction.runBlock({
let i = 0
print(i)
}))
}
,如果你嘗試它到底會發生什麼? –
什麼都沒有。沒有輸出和沒有錯誤,只是永遠運行。 – SwiftProgger
調用'runAction'不會導致一個動作運行,它只是在下一次處理場景的動畫循環時排隊一個要運行的動作。我猜測,既然你不斷地向這個隊列添加動作(甚至沒有任何延遲),那麼這個動畫循環就不會被處理。如果你不重複這個問題,而是運行X次,你會看到一堆1,然後是一堆0。 –