2016-07-22 3 views
0

Xcodeシーンエディタは、Storyboardのようなレイアウトの制約を定義する方法を提供していないように見えるので、シーンエディタを使用して静的スプライトを視覚的に配置して整理することができます(StoryboardでUIButtonを整列する方法と同様)。Xcode Scene Editorのレイアウト制約を使用して、Storyboardに似たスプライトをレイアウトしますか?

誰かがこれらの事は、シーンエディタでは不可能であることを確認でした:他のスプライトと制約を使用してシーンに

1)ポジションスプライト相対的(すなわち、中央スプライトスプライトBに対して)?

2)#1 とすると、デバイスに基づいてレイアウトの制約とスプライトのサイズを調整できますか?

+0

制約は、あなたが考えている方法は、スプライトキットには意味がありませんが、はい1を処理SKConstraintsが、)がある、2)仕事や意味がありません。これは、scaleModeが存在する理由です。 – Knight0fDragon

+0

@ Knight0fDragonは、静的スプライト(最初の配置後に移動しないスプライト)に対して意味がない理由を親切に説明できますか? – Crashalot

+0

あなたのシーンサイズは、調整するものではなく、静的なサイズになるように設計されています。 – Knight0fDragon

答えて

2

Sprite-kitにはレイアウトの制約がありません。たとえば、フラグauto-layoutの場合はUIKitの制約、の場合はすべての要素の配置が変更されます。

この場所では、サイズが常に変化する文字、消滅または再表示されるオブジェクト、物理法則に関連するその他の要素を背景に長く描くことができるコンテキストでは意味をなさないことがあります。 Knigh0fDragonでコメントしたよう これはSKSceneScaleMode

シーンの領域はスプライト・キットで

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

しかし提示ビュー にマッピングされている方法を決定するモードを存在する理由でありますSKConstraints

SKConstraintオブジェクトは、数学的制約を記述します。oノードの の位置または方向。制約はノードにアタッチされます。 シーンがアクションと物理的なやりとりを処理した後、ノードツリーのノードに添付された という制約が適用されます。シーンがそう

をレンダリングされる前に、一定の関係が真であることを確認してください に制約を使用して、他の言葉で、SKConstraintはあなたがしたい場合などのためにそれを使用することができ、特定のノードの位置と方向を制限するために使用されていますプレイヤーの滞在や特定の位置への移動、プレイヤーが従わなければならないいくつかの参照点/要素があります。

例:

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

ありがとうございますが、これらの制約はシーンエディタでは定義できません。正しい?はい、なぜ制約はすべての場合に意味をなさないのか理解されていますが、スプライトがサイズと位置に固定され、レイアウト制約によって定義できるものがあります。 – Crashalot

+0

最後の質問について私は「レイアウト制約を介して」とはどういう意味なのですか?UIKit要素またはSprite-kit要素を参照していますか? –

+0

スプライトキットの要素 – Crashalot

関連する問題