2017-03-26 2 views
1

3 초 후에 시작되는 게임을 만들려고합니다. 그래서 시퀀스를 추가하려고합니다. 그래서 startGame 함수가 지연 후 시퀀스에서 호출됩니다. 그런 다음 해당 함수를 처음에 포함 된 지연을 사용하여 호출 할 수 있지만 두 번째 함수의 끝에서 시퀀스를 실행하려고하면 오류가 계속 발생합니다.순서대로 함수 실행

나는 시작 게임 기능이 있습니다

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() 함수를 호출하십시오. 마지막에는 setup 기능과 함께.

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

기능에 따라 무효 형 의 특별한 값을 반환합니다. 이것은 단순히 빈 튜플이며,()로 작성됩니다.

컴파일러에서 알려주므로 튜플에 run을 사용할 수 없습니다.