使用Xcode场景编辑器的布局约束来布局类似于Storyboard的精灵?

时间:2016-07-22 23:53:07

标签: ios xcode sprite-kit autolayout skscene

Xcode场景编辑器似乎没有提供一种定义布局约束的方法,例如使用Storyboard,因此您可以使用场景编辑器直观地放置和组织静态精灵(类似于如何使用Storyboard排列UIButtons)。

有人确认使用场景编辑器无法做到这些事情:

1)使用约束(即相对于Sprite B的中心Sprite A)相对于其他精灵和场景定位精灵?

2)假设#1 是可能的,那么根据设备调整布局约束和精灵大小?

1 个答案:

答案 0 :(得分:2)

Sprite-kit中没有布局约束,类似于UIKit约束,例如标记自动布局和所有元素重新定位。

在这个地方你可能没有意义,在这种环境中,你可以拥有不断改变大小的角色,消失或重新出现的物体的长背景,以及物理定律所涉及的其他元素。 由Knigh0fDragon评论,这是SKSceneScaleMode存在的原因

  

确定场景区域如何映射到视图的模式   提出它

enum SKSceneScaleMode : Int {
    case Fill
    case AspectFill
    case AspectFit
    case ResizeFill
}

但是在Sprite-kit中有SKConstraints

  

SKConstraint对象描述节点的数学约束   位置或方向。约束附加到节点;之后   场景处理任何动作和物理交互,它适用   附加到节点树中节点的约束。使用约束来   确保在渲染场景之前某些关系为真

因此,换句话说,SKConstraint用于限制特定节点的位置和方向,例如,当您希望玩家停留或跑到特定位置并且您有一些参考点时,可以使用它/玩家必须遵循的元素。

一个例子:

let range = SKRange(lowerLimit:50, upperLimit:150)
let leftConstraint = SKConstraint.distance(range, toNode:guardrail)
car.constraints = [leftConstraint]