当精灵接触另一个精灵时重置

时间:2018-12-05 16:06:39

标签: swift xcode sprite-kit

我试图让玩家精灵节点在碰到危险节点时重置。我怎样才能做到这一点? 该代码无效。

if player.position == danger.position {
    player.position = CGPoint(x: 0, y: 550)
} else if player.position == goal.position {
    print("Good Job!") 
}

1 个答案:

答案 0 :(得分:0)

在简单的情况下,如果节点在相同的坐标空间中(即它们具有相同的父级),则CGRect会提供一种方法,该方法将告诉您rect是否与另一个rect相交:

double

如果不使用SKNode.convert(from:)来变换位置之一,则重建一个变换后的框架(与UIView SKNode只能变换点而不能校正)不同。

物理系统可以为您进行碰撞和接触,这是执行此类操作的首选方式,但是如果您不想加入物理,则上面的示例可以工作。