Как преобразовать значение в CGPoint? - PullRequest
0 голосов
/ 02 марта 2019

У меня проблема в том, что я хочу использовать переменную в действии, у которой нет соответствующего типа.Поэтому я получаю следующую ошибку: Cannot convert value of type 'SKSpriteNode' to expected argument type 'CGPoint'.

func enemyProofNextFields() {

    for i in 0...41 {

        if getDistance(knightRed.position, grassTileArray[i].position) > 120 && getDistance(knightRed.position, grassTileArray[i].position) < 121 {

            possibleEnemeyFields.append(grassTileArray[i])
        }
    }

    var lenght = possibleEnemeyFields.count
    let randomNumber = Int.random(in: 0 ... lenght)
    print("Random Enemy Number: \(randomNumber)")
    var position = possibleEnemeyFields[randomNumber]

    let move = SKAction.move(to: position, duration: 0.3) //here is the error
    knightRed.run(SKAction.sequence([move]))

}

За любой ответ я был бы очень признателен.

1 Ответ

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

Ошибка довольно очевидна: possibleEnemeyFields содержит явно SKSpriteNode экземпляров, но первый параметр move ожидает CGPoint, предположительно position

Вы, вероятно, имеете в виду

let field = possibleEnemeyFields[randomNumber]
let move = SKAction.move(to: field.position, duration: 0.3) 
...