使用Xcode场景编辑器的布局约束来布置类似于Storyboard的精灵?
问题描述:
Xcode Scene Editor似乎没有提供像使用Storyboard一样定义布局约束的方法,因此您可以使用Scene Editor以可视方式放置和组织静态小精灵(类似于如何使用Storyboard排列UIButton)。使用Xcode场景编辑器的布局约束来布置类似于Storyboard的精灵?
可能有人证实这些东西是不可能的场景编辑器:相对于其它精灵和使用约束场景
1)位置的精灵(即,中心的Sprite A相对于精灵B)?
2)假设#1 是可能,然后根据设备调整布局约束和精灵大小?
答
Sprite-kit中没有与UIKit约束相似的布局约束,例如在标志自动布局和所有元素被重新定位。
在这个地方,在可以长时间背景的人物不断变化的大小,消失或重现的物体以及物理定律所涉及的其他元素的背景下,这可能是没有意义的。 正如评论说Knigh0fDragon这是其SKSceneScaleMode
存在
决定场景的区域是如何映射到呈现它
enum SKSceneScaleMode : Int {
case Fill
case AspectFill
case AspectFit
case ResizeFill
}
但是在雪碧杰认为 这些模式的原因有SKConstraints
:
SKConstraint对象描述了一个数学约束o n节点的位置或方向的 。约束连接到节点;在场景处理任何动作和物理交互之后,它应用连接到其节点树中的节点的约束条件。使用约束来 确保渲染场景之前一定的关系是真正的
所以,换句话说,SKConstraint
用于限制位置和特定节点的方向,例如,它可以用来当你想你的玩家留下或跑到特定位置,并且你有一些玩家必须遵循的参考点/元素。
一个例子:
let range = SKRange(lowerLimit:50, upperLimit:150)
let leftConstraint = SKConstraint.distance(range, toNode:guardrail)
car.constraints = [leftConstraint]
约束你的想法是没有意义的雪碧套件,但肯定有SKConstraints,其处理1路),2)不工作或意义。这就是为什么scaleMode存在的原因 – Knight0fDragon
@ Knight0fDragon你能否解释为什么它们对静态精灵没有意义(即,在初始放置后不会移动的东西)? – Crashalot
,因为你的场景大小被设计为一个静态大小,而不是一个调整 – Knight0fDragon