【发布时间】:2015-08-12 22:22:43
【问题描述】:
我创建了一个由多个 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(有点难看,但是那条绿线是物理体的边界。当平铺地图结束时(并且它变成灰色),物理体应该停止为那是不应再允许玩家移动的地方)。
如果您需要更多代码,请发表评论(我相信我包含了任何相关的内容)。
【问题讨论】:
标签: ios swift sprite-kit