我創建了一個由多個367x367的精靈節點組成的平鋪地圖。我創建如下地圖:在平鋪地圖周圍創建邊界
for var i = 0; i < Int(multiplier); i++ {
for var j = 0; j < Int(multiplier); j++ {
// Positive
var map = SKSpriteNode(imageNamed: "tiledBackground.png")
var x = CGFloat(i) * map.size.height
var y = CGFloat(j) * map.size.height
map.position = CGPointMake(x, y)
self.addChild(map)
}
}
在上面的例子中,乘數是27,地圖大小是10,000x10,000。
這會按預期創建地圖,但我希望此地圖具有玩家不能離開的邊界。我知道如何創建邊界,但我不確定用什麼值初始化物理體。 我試過這個:SKPhysicsBody(rectangleOfSize: map.mapSize)
但是這產生了非常錯誤的結果。
我也試過這個:SKPhysicsBody(edgeLoopFromRect: CGRectMake(0, 0, map.mapSize.width, map.mapSize.height))
它構建了一個像它應該的物理體(我有showPhysics = TRUE),但是物理體似乎隨着玩家移動(我讓玩家移動並且正在將玩家地圖對準玩家)。你可以在這裏看到我的意思:http://gyazo.com/675477d5dd86984b393b10024341188a(這有點難以看到,但是綠線是物理體的邊界,當平鋪的地圖結束時(和灰色的地方),物理體應該停止,因爲這是玩家不應該被允許再移動)。 如果您需要更多代碼,請留下評論(我相信我包含了任何相關的內容)。