2017-04-11 7 views
1

enter image description hereスプライト-キット:タイルエディタ

で作成した内部国境を滞在私はXcodeの8(8.2.2)が付属していますタイルエディタの可能性をテストしています。上記のようにPacManのようなマップを作成しました。矩形の左上隅にゲームキャラクターがあります。青い枠の中にゲームキャラクターを置く簡単な方法があるのだろうか?これまでは、シーンエディタを使って、左に赤い壁を設定しました。私は以下のコード行を持っています。

struct PhysicsCategory { 
    static let None: UInt32 = 0 
    static let Player: UInt32 = 0b1 // 1 
    static let Edge: UInt32 = 0b10 // 2 
    static let Wall: UInt32 = 0b100 // 4 
} 

class GameScene: SKScene { 
    // MARK: - Variables 
    var background: SKTileMapNode! // background 
    var player: SKNode! // player 

    // MARK: - DidMove 
    override func didMove(to view: SKView) { 
     setupNodes() 
    } 

    func setupNodes() { 
     background = self.childNode(withName: "World") as! SKTileMapNode 
     background.physicsBody = SKPhysicsBody(edgeLoopFrom: background.frame) 
     background.physicsBody?.categoryBitMask = PhysicsCategory.Edge 

     let wall = self.childNode(withName: "Wall") 
     wall?.physicsBody = SKPhysicsBody(rectangleOf: (wall?.frame.size)!) 
     wall?.physicsBody?.isDynamic = false 
     wall?.physicsBody?.categoryBitMask = PhysicsCategory.Wall 

     player = self.childNode(withName: "Player") 
     player.physicsBody = SKPhysicsBody(circleOfRadius: 32) 
     player.physicsBody?.categoryBitMask = PhysicsCategory.Player 
     player.physicsBody?.collisionBitMask = 4 
     player.physicsBody?.allowsRotation = false 
    } 
} 

ユーザはCoreMotionでプレーヤ位置を制御できます。今のところ、ゲームキャラクターは左端を尊重します。しかし、地図が複雑になると、私はここにたくさんの壁を置くことになります。そしてその種のものは、時間がかかることがあるので、楽しいものを殺します。だから、ゲームのキャラクターを地図の境界線に衝突させる簡単な方法がありますか?

enter image description here

答えて

0

あなただけの直線パスのこれらの種類を持っているグラフを指定することができGameplayKitの経路探索クラス、特にGKGridGraphとGKGridGraphNodeを見てみましょう。 https://developer.apple.com/library/content/documentation/General/Conceptual/GameplayKit_Guide/Pathfinding.html

そして、ここでデモアプリケーション:https://developer.apple.com/library/content/samplecode/Pathfinder_GameplayKit/Introduction/Intro.html#//apple_ref/doc/uid/TP40016461

+0

おかげ

ここにアップルから良いチュートリアルがあります。それは役に立つヒントのように聞こえる。 SKTileMapNodeに実際にパスファインディングを適用する方法はわかりません。 AppleのPathfinderプロジェクトはSKTileMapNodeを使用していません。 –

関連する問題