在平铺地图周围创建边界

时间:2015-05-29 22:22:13

标签: ios swift sprite-kit

我创建了一个由多个sprite节点组成的平铺地图,这些节点是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(有点难以看到,但绿线是物理体的边界。当平铺地图结束时(并且它变成灰色),物理机构应该停止,因为这是不允许球员移动的地方)。 如果您需要更多代码,请发表评论(我相信我提供了相关的任何内容)。

1 个答案:

答案 0 :(得分:0)

在搞乱了我的一些代码后,我发现修复只是将physicsBody添加到我的地图而不是场景中。一个相当容易的修复,所以我很惊讶我没有早点想到它。 考虑到这一点,我已回答了我自己的问题,不再需要帮助了。