で作成した内部国境を滞在私は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
でプレーヤ位置を制御できます。今のところ、ゲームキャラクターは左端を尊重します。しかし、地図が複雑になると、私はここにたくさんの壁を置くことになります。そしてその種のものは、時間がかかることがあるので、楽しいものを殺します。だから、ゲームのキャラクターを地図の境界線に衝突させる簡単な方法がありますか?
おかげ
ここにアップルから良いチュートリアルがあります。それは役に立つヒントのように聞こえる。 SKTileMapNodeに実際にパスファインディングを適用する方法はわかりません。 AppleのPathfinderプロジェクトはSKTileMapNodeを使用していません。 –