私は、落下するオブジェクトの上に置いて左右に動かしながら、プラットフォームをコントロールするゲームを作ろうとしています。しかし、プラットフォームは、その上に落ちるアイテムとは独立して動くようです。たとえば、ブロックが自分のプラットフォームの上にある場合、プラットフォームを左右に動かすと、ブロックはそのままのままで、プラットフォームだけがブロックの下を移動します。これは、ブロックがプラットフォームと一緒に動いていないので、何も積み重ねることが不可能になります。私はバランスをシミュレートするために使用する必要があるSpriteKitの物理プロパティを確認できません。私はブロックがプラットフォームに衝突するときの跳ね返りと、それがブロックをプラットフォームに「固執する」のに役立つかどうかを見るための摩擦特性を取り戻そうとしましたが、どちらも役に立たないようです。タイプゲームの積み重ねとバランスをとるために必要なSpriteKitの物理プロパティ
私のプラットフォームは、動的ではありませんでしたので、私は
助けるようだplatform.physicsBody!.isDynamic = true
platform.physicsBody!.affectedByGravity = false
platform.physicsBody!.allowsRotation = false
を設定しようとしましたか?プラットフォームはまだ私が持っていないブロックと衝突するときに動き回る。
EDIT:
これは私がプラットフォームを動かしてる方法です。ユーザーは指でドラッグしてプラットフォームの親を移動します。これはプラットフォームの親を動かすので、プラットフォームも一緒に移動します。
override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
if let touch = touches.first {
let location = touch.locationInNode(self)
platformParent.position.x = location.x
}
}
これを試してみてください - 落下するブロックが最終的に確定した後、そのプラットフォームの子にします。その後、プラットフォームと共に移動する必要がありますが、それでも他のブロックがその上に落ちるような影響を受けます。代わりに、プラットフォーム上に置かれたときに「固まっている」場合は、SKPhysicsジョイントを使用してその場所に固定します。 –