Je suis en train de créer un bloc d'action personnalisé pour un SKSpriteNode
, je le code suivant:KeyPaths intelligents Swift 4 ne fonctionne pas correctement
let sprite = SKSpriteNode(color: SKColor.red, size: CGSize(width: 50, height: 50))
sprite.position = CGPoint(x: 320, y: 240)
self.addChild(sprite)
let animation = SKAction.customAction(withDuration: 0, actionBlock: {
(node, elapsedTime) in
var initialValue : CGFloat?
initialValue = node[keyPath: \SKSpriteNode.position.x] //Extraneous argument label 'keyPath:' in subscript
node[keyPath: \SKSpriteNode.position.x] = 10 //Ambiguous reference to member 'subscript'
})
sprite.run(animation)
Je reçois deux erreurs, la première est que le compilateur est pensant que j'ai un argument Extraneous de « KeyPath », ce qui est pas le cas, parce que si je devais l'enlever comme il l'indique, je reçois cette erreur:
Cannot convert value of type 'ReferenceWritableKeyPath' to expected argument type 'String'
la deuxième erreur que je reçois est:
Ambiguous reference to member 'subscript'
Je ne suis pas exactement sûr pourquoi je reçois toutes ces erreurs, et je ne suis pas sûr exactement ce que les erreurs signifient. Si quelqu'un pouvait me les expliquer et proposer une solution, ce serait formidable. Merci d'avance.