2015-04-02 26 views
-1

我正在製作一個點燃的遊戲,並且我需要從右向左運行隨機列。 即時通訊使用開關條件(開關/大小寫/大小寫...),在每種情況下,我正在添加一個不同的子節點,但它不工作,我不知道爲什麼。也即時做一個雖然cicle運行的條件永遠如何在Swiftkit中的Switch語句中添加子節點(sknode)

我有所有g1(sknode),g2(sknode)和moveremover(skaction)代碼寫在第一行然後我有這個工作不正常,請幫助和對我的英語抱歉..

...這裏所有的G1,G2和moveremover碼...然後

var y = true 

do{ 

var x = arc4random_uniform(5) 

switch x 
    { 
case 1: addChild(g1); g1.runAction(moveremover) 
case 2: addChild(g2); g2.runAction(moveremover) 
default: SKAction.waitForDuration(2) 
    } 

} 
while y 

也許這是不是讓我嘗試什麼,但最好的方式是唯一我的想象力的方式

+0

do {...} while(true)是無限循環,直到你以某種方式改變了y的值。我想你不想那樣。從你發佈的代碼看起來你正試圖產生節點並移動它們?你需要定期產卵嗎?閱讀本教程中有關shurikens的部分內容:http://www.raywenderlich.com/80917/sprite-kit-inverse-kinematics-swift這將是定期產生節點的一種方法。你仍然可以使用開關來選擇產生哪個節點,但是我認爲,無限循環做/無盡循環對於任何情況都是非常糟糕的選擇。 – Whirlwind 2015-04-02 23:08:53

+0

我想產卵無限節點並移動它們(這就是爲什麼我把無盡循環),我需要每2秒產卵它們。 – 2015-04-03 00:59:42

+0

而不是while循環更好的func? – 2015-04-03 01:00:03

回答

0

而不是無盡的do while loop ,您可以使用SKAction.repeatForever一次又一次地重複某個功能並延遲。

func spawnColumn() { 
    // This has your column spawning code. 
} 

func spawnColumnEveryTwoSeconds() { 

    let spawnAction = SKAction.runBlock {() -> Void in 
     self.spawnColumn() 
    } 

    let waitTwoSeconds = SKAction.waitForDuration(2.0) 
    let spawnAndWait = SKAction.sequence([spawnAction,waitTwoSeconds]) 
    let spawnAndWaitForever = SKAction.repeatActionForever(spawnAndWait) 

    self.runAction(spawnAndWaitForever) 
} 
+0

謝謝你兄弟..要產卵隨機列我需要爲每列做一個f​​unc?我怎麼能這樣做,如果我不使用swich條件 – 2015-04-04 21:34:59

+0

我不能runBlock與類型的參數()當我把spawnColumn或遊戲場景沒有一個名爲spawnColumn() – 2015-04-04 22:04:47

+0

成員我把spawnColumn函數內的gamescene和它跑但它不會產生任何東西 – 2015-04-04 22:27:54