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

标签 macos sprite-kit skspritenode swift5

我想将 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)

让我知道你过得怎么样

关于macos - 如何创建一个从一个点(CGPoint)到另一点 "points"的CGVector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57572956/

相关文章:

ios - 如何检测 SKSpriteNode 接触但没有反应?

swift - 为什么我的 touchesEnded 函数没有初始化?

swift - 在 Swift 4 中监听 NSWorkspace 通知

mysql - 更新到 MySQL Workbench 8.0.18 后,未显示任何数据库

ios - 如何使 SKSpriteNode 不掉落(Swift)

ios - 没有声音没有任何错误

swift - 如何缩放窗口以适应所有设备?

sprite-kit - 为什么 Sprite 套件中的坐标系翻转了,我可以全局更改吗?

macos - 窗口关闭时如何退出 MonoMac 应用程序?

vba - VBA 是否为 String 和 Array 提供垃圾回收?