2017-03-26 14 views
1

私は3秒遅れて開始するゲームを作ろうとしています。シーケンスを追加しようとしていますので、startGame関数は遅延の後にシーケンスで呼び出されます。私はその後、最初に遅延が含まれている関数を呼び出すことができますが、私は2番目の関数の最後にシーケンスを実行しようとするとエラーが発生し続けます。順番に機能を実行しています

私はスタートゲーム機能があります。

func startGame(){ 
    let spawn = SKAction.run(createEnemy) 
    let wait = SKAction.wait(forDuration: 2) 
    let spawnSequence = SKAction.sequence([wait, spawn]) 
    let spawnForever = SKAction.repeatForever(spawnSequence) 
    self.run(spawnForever) 
} 

をしてから、私は遅延を追加するために順番にその機能を使用する別の機能を持っています。

func beginGame(){ 
    let countdown = SKAction.wait(forDuration: 3) 
    let startGame = SKAction.run(self.startGame) 
    let startSequence = SKAction.sequence([countdown, startGame]) 
    **self.beginGame().run(startSequence)** 
} 

次に、setup関数とともにbeginGame()関数を呼び出します。最後にセットアップ機能と一緒に。

scene.setup() 
scene.beginGame() 

私は取得しています「『)(』タプルの値をなしメンバー 『実行』を持っている」

愚かな質問のため申し訳ありませんが、私は迅速で初心者です。

答えて

0

それは

func startGame() -> SKAction { 
    let spawn = SKAction.run { self.hello() } 
    let wait = SKAction.wait(forDuration: 2) 
    let spawnSequence = SKAction.sequence([wait, spawn]) 
    let spawnForever = SKAction.repeatForever(spawnSequence) 

    return spawnForever 
} 

func beginGame() { 

    let countdown = SKAction.wait(forDuration: 3) 
    let startGame = self.startGame() 
    let startSequence = SKAction.sequence([countdown, startGame]) 
} 

self.beginGame() 
+0

私はそれを試みましたが、それでも私には同じエラーが表示されます。 – Elijah

+0

私は少し前にStartGame()からSKActionを返すように変更しました。 –

0

SKActionsがあるべき...これを試して、ブラケットが必要な場合がありますので、実行ブロックが閉鎖され

let spawn = SKAction.run { self.createEnemy() } 

let startGame = SKAction.run { self.startGame() } 

をお試しくださいノードで実行します。あなたのコード行 self.beginGame().run(startSequence)は、機能beginGame()でシーケンスを実行しようとしているようです。 beginGame()には戻り値の型が定義されていないためです。

定義された戻り値の型なしhttps://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Functions.html

機能に応じvoid型 の特別な値を返します。これは単純に空のタプルであり、()のように書かれています。

コンパイラから伝えられるように、タプルにrunを使用することはできません。

関連する問題