2017-01-02 13 views
2

もう一つのスウィフトゲームを作っています。床は砂漠です。 このフロアは、そのイメージテクスチャに基づいた物理学のボディ(スプライトキット)です。 特定のxポイント(例:画面の中央)に基づいて床の高さを知りたい。 floor.size.heightを使用すると、長方形(つまり、可能な最大高さ)のように高さを取得します。 私はこのYポイントを取得して、物理学者と共にプレーヤーを移動させたいと思っています。スウィフトのx点からの画像の高さを取得

誰でも助けてもらえますか?

enter image description here

答えて

1

あなたは必要がありません。あなたは物理学を使用しているからといって、それは単にisDynamic = trueisDynamic = falseとプレイヤーと床と例えばなどの他のパラメータを記述しています:

enum CollisionTypes: UInt32 { 
    case player1 = 1 
    case player2 = 2 
    case floor = 4 
} 

floor.physicsBody?.categoryBitMask = CollisionTypes.floor.rawValue 
floor.physicsBody?.contactTestBitMask = CollisionTypes.player.rawValue 
floor.physicsBody?.collisionBitMask = 0 

player1.physicsBody?.categoryBitMask = CollisionTypes.player1.rawValue 
player1.physicsBody?.contactTestBitMask = CollisionTypes.floor.rawValue 
player1.physicsBody?.collisionBitMask = CollisionTypes.floor.rawValue 

は、これはそれがあなたの役に立てば幸い開始するための唯一のポイントです。

+0

実際には物理的にも接触処理としても正常に動作しています... フロアはダイナミックな偽で安定しており、プレイヤーはダイナミックな真実で動いています... しかし、これを使用するとplayer.run(SKAction.moveBy x:10、y:0、duration:0))プレイヤーは上り坂で床に移動する可能性があります。 –

+0

予期しない動作を望まない場合は、SKAction.move..物理を使用しないでください。代わりに、applyImpulseを使用するか、スプライトの速度を変更してください。 –

+0

良いヒント!ありがとう! –

関連する問題