检查没有物理实体的 SKSprite 节点之间的碰撞
Posted
技术标签:
【中文标题】检查没有物理实体的 SKSprite 节点之间的碰撞【英文标题】:Check for collisions between SKSprite nodes that don't have physics bodies 【发布时间】:2017-03-10 03:55:29 【问题描述】:我有两个 SkSprite 节点。
var player = SKSpriteNode()
var colorWheel = SKSpriteNode()
我有没有一种简单的方法来检测它们之间的碰撞,而不必给它们物理实体。感谢您的帮助。
【问题讨论】:
【参考方案1】:有一种使用 update() 方法的方法
override func update(_ currentTime: TimeInterval)
if player.frame.intersects(colorWheel.frame)
//Nodes are colliding
这只是一个起点,将在节点发生碰撞的每一帧中触发。您将不得不写下额外的逻辑来处理一次性碰撞等。
【讨论】:
这会让所有东西都有一个方形的命中框 我的两个节点都是圆圈我可以让它们有一个圆形的“hitbox” 那是物理环境提供的便利。您应该使用physicsBodies 来检测碰撞,因为它们也会导致代码更具可读性。此外,physicsBodies 也可以制成任何形状。以上是关于检查没有物理实体的 SKSprite 节点之间的碰撞的主要内容,如果未能解决你的问题,请参考以下文章