Swift3 如何在Swift 3中生成带有两个CGPoint的CGVector
我正在Swift3 如何在Swift 3中生成带有两个CGPoint的CGVector,swift3,sprite,Swift3,Sprite,我正在swift3中开发一个小游戏。我想将我的敌人移动到角色位置,我尝试使用此功能: let actionTransaction6 = SKAction.move(to: CGPoint(x: personaje.position.x, y:personaje.position.y ), duration: 6.0 - Double(nivel)) enemigo6.run(actionTransaction6) 但是当敌人到达我角色的初始点时,他们就停止了。我知道有一个函数可以移动到
swift3
中开发一个小游戏。我想将我的敌人移动到角色位置,我尝试使用此功能:
let actionTransaction6 = SKAction.move(to: CGPoint(x:
personaje.position.x, y:personaje.position.y ), duration: 6.0 -
Double(nivel))
enemigo6.run(actionTransaction6)
但是当敌人到达我角色的初始点时,他们就停止了。我知道有一个函数可以移动到特定的方向,但我无法“找到”我的CGVector。
可能是这样或是什么
SKAction.move(by: enemigo6.position - personaje.position, duration: 10)
谢谢你的进步 没有为
CGPoint
定义的-
运算符,也没有从两点创建CGVector
的函数
只需从组件手动创建向量:
let movement = CGVector(
x: enemigo6.x - personaje.position.x,
y: enemigo6.y - personaje.position.y
)
SKAction.move(by: movement, duration: 10)
没有为
CGPoint
定义的-
运算符,也没有从两点创建CGVector
的函数
只需从组件手动创建向量:
let movement = CGVector(
x: enemigo6.x - personaje.position.x,
y: enemigo6.y - personaje.position.y
)
SKAction.move(by: movement, duration: 10)
做你自己的分机
import UIKit
extension CGPoint {
static func - (lhs: CGPoint, rhs: CGPoint) -> CGVector {
return CGVector(dx: lhs.x - rhs.x, dy: lhs.y - rhs.y)
}
}
然后得到CGVector=CGPoint-CGPoint。因此,您将能够使用您的代码:
SKAction.move(by: enemigo6.position - personaje.position, duration: 10)
以防万一你需要另一次手术
extension CGPoint {
static func + (lhs: CGPoint, rhs: CGVector) -> CGPoint {
return CGPoint(x: lhs.x + rhs.dx, y: lhs.y + rhs.dy)
}
static func - (lhs: CGPoint, rhs: CGVector) -> CGPoint {
return CGPoint(x: lhs.x - rhs.dx, y: lhs.y - rhs.dy)
}
static func - (lhs: CGPoint, rhs: CGPoint) -> CGVector {
return CGVector(dx: lhs.x - rhs.x, dy: lhs.y - rhs.y)
}
}
做你自己的分机
import UIKit
extension CGPoint {
static func - (lhs: CGPoint, rhs: CGPoint) -> CGVector {
return CGVector(dx: lhs.x - rhs.x, dy: lhs.y - rhs.y)
}
}
然后得到CGVector=CGPoint-CGPoint。因此,您将能够使用您的代码:
SKAction.move(by: enemigo6.position - personaje.position, duration: 10)
以防万一你需要另一次手术
extension CGPoint {
static func + (lhs: CGPoint, rhs: CGVector) -> CGPoint {
return CGPoint(x: lhs.x + rhs.dx, y: lhs.y + rhs.dy)
}
static func - (lhs: CGPoint, rhs: CGVector) -> CGPoint {
return CGPoint(x: lhs.x - rhs.dx, y: lhs.y - rhs.dy)
}
static func - (lhs: CGPoint, rhs: CGPoint) -> CGVector {
return CGVector(dx: lhs.x - rhs.x, dy: lhs.y - rhs.y)
}
}
SKAction.move(by:…,duration:…)与SKAction.move(to:…,duration:…)的操作相同,我不知道为什么@SulthanThe SKAction.move(by:…,duration:…)与SKAction.move(to:…,duration:…)执行相同的操作,我不知道为什么@苏丹