将SKSpriteNode的移动约束到场景中的固定区域



如何将SKSpriteNode的手动移动约束到场景中的固定矩形区域?这个固定的矩形区域也是一个固定在场景中的SKSpriteNode。换句话说,我想约束对象(SKSpriteNode)的手动移动,使其完全包含在另一个SKSpriteNode中,或者至少包含在它所占据的相同空间中。我尝试了几种不同的方法(例如,使用具有边缘物理体的SKShapeNode),但似乎都不起作用。这似乎应该是一项相当简单的任务。感谢您提供的任何帮助或提示。

在移动代码周围放一个if语句,所以如果移动会使对象越过边界,就不要执行移动。例如

//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
    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]

最新更新