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

问题描述:

Xcode Scene Editor似乎没有提供像使用Storyboard一样定义布局约束的方法,因此您可以使用Scene Editor以可视方式放置和组织静态小精灵(类似于如何使用Storyboard排列UIButton)。使用Xcode场景编辑器的布局约束来布置类似于Storyboard的精灵?

可能有人证实这些东西是不可能的场景编辑器:相对于其它精灵和使用约束场景

1)位置的精灵(即,中心的Sprite A相对于精灵B)?

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

+0

约束你的想法是没有意义的雪碧套件,但肯定有SKConstraints,其处理1路),2)不工作或意义。这就是为什么scaleMode存在的原因 – Knight0fDragon

+0

@ Knight0fDragon你能否解释为什么它们对静态精灵没有意义(即,在初始放置后不会移动的东西)? – Crashalot

+0

,因为你的场景大小被设计为一个静态大小,而不是一个调整 – Knight0fDragon

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] 
+0

非常感谢,但这些约束在Scene Editor中是不可定义的。正确?是的,据了解,为什么约束对所有情况都没有意义,但肯定有一些情况下,精灵的大小和位置是固定的,并且可以通过布局约束来定义。 – Crashalot

+0

正确,关于最后一个问题我不明白你的意思是“通过布局约束”,你指的是UIKit元素还是Sprite-kit元素? –

+0

sprite kit elements – Crashalot