如何限制SKSpriteNode手动移动到场景中的固定矩形区域?这个固定的矩形区域也是一个固定在场景中的SKSpriteNode。换句话说,我想将对象的手动移动(SKSpriteNode)限制为完全包含在另一个SKSpriteNode中,或者至少在它占据的相同空间中。我尝试了几种不同的方法(例如使用具有基于边缘的物理体的SKShapeNode),但似乎没有任何效果。这看起来应该是一个相当简单的任务。感谢您提供的任何帮助或提示。
答案 0 :(得分:1)
在移动代码周围加上一个if语句 - 所以如果它将物体带过你的边界,就不要进行移动。 e.g。
//check that a positive movement won't take your node past the right boundary
if(node.position.x + yourXMovementValue < boundaryXRight){
//move your node
}
//same for y
答案 1 :(得分:0)
let rangeX = SKRange(lowerLimit: CGFloat, upperLimit: CGFloat)
let contraintX = SKConstraint.positionX(rangeX)
let rangeY = SKRange(lowerLimit: CGFloat, upperLimit: CGFloat)
let contraintY = SKConstraint.positionY(rangeY)
yourObject.constraints = [contraintX, contraintY]