как быстро создавать вражеские корабли - PullRequest
0 голосов
/ 17 марта 2019

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

Это мой вражеский код появления:

func spawnEnemy(){

    let randomXStart = random(min:gameArea.minX, max: gameArea.maxX)
    let randomXEnd = random(min: gameArea.minX, max:gameArea.maxX)

    let spawnPoint = CGPoint(x: randomXStart, y: self.size.height * 1.2)
    let endPoint = CGPoint(x: randomXEnd, y: -self.size.height * 0.2)

    let enemy = SKSpriteNode(imageNamed: "enemyShip")
    enemy.setScale(1)
    enemy.position = spawnPoint
    enemy.zPosition = 2
    self.addChild(enemy)

    let moveEnemy = SKAction.move(to: endPoint, duration: 1.5)
    let deleteEnemy = SKAction.removeFromParent()
    let enemySequence = SKAction.sequence([moveEnemy, deleteEnemy])
    enemy.run(enemySequence)


    let dx = endPoint.x - spawnPoint.x
    let dy = endPoint.y - spawnPoint.y
    let amountToRotate = atan2(dy, dx)
    enemy.zRotation = amountToRotate

}

1 Ответ

0 голосов
/ 17 марта 2019

Ваш враг появляется, вы не можете видеть его, потому что вы не установили значение size. По умолчанию это (width: 0, height: 0).

enemy.size = CGSize(width: 100, height: 100)

Кроме того, еще один способ проверить, порожден ли объект enemy, состоит в том, чтобы посмотреть номер счетчика узлов, чтобы увидеть, увеличивается ли он после вызова функции spawnEnemy.

Для этого вам нужно иметь view.showsNodeCount = true.

...