如何创建一个从一点(CGPoint)到另一点 "points" 的 CGVector

How to create a CGVector that "points" from one point (CGPoint) to another point

我想将 CGVector 用于 SKAction.move,它将一个 SKSpriteNode 移向另一个 SKSpriteNode。

我想使用这个代码:

let point: CGPoint = CGPoint(x: CGFloat(arc4random_uniform(UInt32(size.width))), y: CGFloat(arc4random_uniform(UInt32(size.height))))
let object: SKSpriteNode = SKSpriteNode(color: NSColor.red, size: CGSize(width: 10, height: 10))
object.position = CGPoint(x: 50, y: 50)
addChild(object)
object.run(SKAction.move(by: CGVector(), duration: 2.5)) // <- Vector from `object.position` to `point`

您需要使用矢量数学 所以看看你的代码,你想使用这样的东西:

let P1 = point
let P2 = object.position
//Find offset
let offset = P1 - P2
//Set X and Y distance to move
let distX = CGFloat(offset.x)
let distY = CGFloat(offset.y)
//set vector
let vec = CGVector(dx: distX, dy: distY)
//Set action
object.run(SKAction.move(by: vec, duration: 2.4)

告诉我你过得怎么样