2014-12-25 3 views
0

Я новичок в Swift и SpriteKit, и у меня есть небольшая проблема. Я хотел бы порождать врагов раз в секунду, перемещая игрока немного раз за кадр. Поэтому я попытался создать два отдельных SKActions. Это мой код:Swift SpriteKit: Запуск двух SKActions навсегда отдельно

runAction(SKAction.repeatActionForever(
     SKAction.sequence([ 
      SKAction.runBlock(
       addEnemy 
      ), 
      SKAction.waitForDuration(1.0) 
     ]) 
    )) 

runAction(SKAction.repeatActionForever(
    SKAction.runBlock(
     movePlayer 
    ) 
)) 

Но когда я запускаю вышеуказанное, действие не происходит. Как я могу это исправить?

+0

Они не должны влиять друг на друга. Вы пытались использовать NSTimer вместо 'runAction' вместо этого? – erdekhayser

+0

Я предполагаю, что либо этот код никогда не вызывается, либо тот объект, на который они вызваны, никогда не выделяется или освобождается раньше. – erdekhayser

+1

Нет ничего плохого в этом коде. Возможно, будет полезно размещать 'addEnemy' и' movePlayer'. Вы пытались добавить точку останова в одну из этих функций? – 0x141E

ответ

0

Вам нужно написать self.addEnemy() & self.movePlayer()

И только для глаз, я хотел бы написать код так:

var waitE = SKAction.waitForDuration(1) 
var runE = SKAction.runBlock{ 
self.addEnemy() 
} 

var runP = SKAction.runBlock{ 
    self.movePlayer() 
} 

var repeatMovingPlayer = SKAction.repeatActionForever(runP) 
var EnemySeqence = SKAction.seqence([waitE, runE]) 
var repeatAddingEnemy = SKAction.repeatActionForever(EnemySeqence) 

self.runAction(repeatAddingEnemy) 
self.runAction(repeatMovingPlayer)