ios - 我如何检查两个 SKSpriteNode 是否彼此靠近?

标签 ios swift swift3 sprite-kit

如何检查两个 SKSpriteNode 是否彼此靠近?就像在 100 的半径内。我正在使用 gamescene.swift 和 gamescene.sks。

最佳答案

SKSpriteNode 有一个带有 (x, y) 的位置属性。

两个位置之间的距离是sqrt((x1-x2)^2 + (y1-y2)^2)

所以:

let dist = sqrt(pow(sk1.position.x - sk2.position.x, 2.0) + pow(sk1.position.y - sk2.position.y, 2.0))
if dist < 100 {
    // they are close
}

这是中心到中心。

根据@MartinR 的评论,您还可以

let dist = hypot(sk1.position.x - sk2.position.x, sk1.position.y - sk2.position.y)

哪个对你有距离作用。

关于ios - 我如何检查两个 SKSpriteNode 是否彼此靠近?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44575483/

相关文章:

ios - 保存时的核心数据性能问题

ios - 在多个线程中使用空引用实例的安全性

ios - UITableView 没有成员 'dequeueReusableCell'

ios - Swift 2 :IBOutlet Collection [UIButton]! 内存泄漏

iphone - 使用带有委托(delegate)的分配

ios - 将 UIImageView 添加到自定义 UIButton 类

ios - 无法找到 respondsToSelector :@selector(charValue) in Swift 3 的等价物

ios - 在加载 View iOS 之前从 Firebase 检索数据

swift - 尝试将 Twitter 用户的用户名保存到 Firebase 数据库 iOS 应用程序

swift - 如何指定输出可执行文件的名称?