再一次,可能是一個新手問題。我跟隨我在這兩個環節上的說明,因爲它們解決的正是這個問題我有(修改SKAction的速度從它自己的方法外):SKAction(SpriteKit)產生問題的問題
How to change duration of executed SpriteKit action
How to run or execute an SKAction from outside of the object?
在我的情況下,有這樣的SKAction:
SKAction * moveBall = [SKAction moveToY:0 duration:1];
[ball runAction:moveBall withKey:@"ball falling"];
我創建屬性,像這樣:
@property SKAction * moveBall;
然後我想觸摸按鈕後,從的touchesBegan調用它,這樣的:
if ([node.name isEqualToString:@"Slow Down Button"]) {
self.moveBall.speed = 0.5;
}
moveBall.speed
內其自身的方法是1.0,但self.moveBall.speed
指示速度的0.0(同樣爲_moveBall.speed
),所以屬性聲明無法正常工作。我嘗試了幾件事,但到目前爲止我找不到缺失的東西。
在此先感謝!
工作完美,非常感謝!現在我可以從任何地方讀取這個變量,這樣就解決了。不過,我仍然無法正確改變速度。我可以用另一個SKAction:withKey覆蓋動作,但它不是最優雅的解決方案。這可能與幀刷新有關,因爲在這種情況下,只會影響到第二個球落下,並且我仍然需要再次按下按鈕才能獲得速度變化。我會繼續嘗試。 – danialias