Как я могу заставить все мои узлы выполнять одно и то же действие в одно и то же время (например, врага, следуя за этим) SpriteKit, GameKit - PullRequest
0 голосов
/ 13 марта 2020

Мне нужна ваша помощь, я пытаюсь вызвать нескольких врагов на экране, а затем заставить их приблизиться к игроку, так что вот мой код, но проблема в том, что враги вообще не двигаются, они просто икру и оставайся на месте.

func spawnEnemigos() {
    let enemy = SKSpriteNode(imageNamed: "Enemy_0")
    let randomY = CGFloat.random(in: 10 ... 300.000)
    let randomX = CGFloat.random(in: 10 ... 800.000)
    enemy.position = CGPoint(x: randomX, y: randomY)

    let dx = player.position.x - enemy.position.x
    let dy = player.position.y - enemy.position.y
    let angle = atan2(dy, dx)
    let vx = cos(angle) * enemySpeed
    let vy = sin(angle) * enemySpeed
    enemy.position.x += vx
    enemy.position.y += vy

    addChild(enemy)
}

func timerSpawnEnemies() {
    let wait = SKAction.wait(forDuration: 5.0)
    let spawn = SKAction.run {
        self.spawnEnemigos()
    }
    let sequence = SKAction.sequence([wait, spawn])
    let sequence4Ever = SKAction.repeatForever(secuencia)
    self.run(sequence4Ever)
}
...