【问题标题】:Creating a boundary around a tiled map在平铺地图周围创建边界
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-18
      • 1970-01-01
      • 2014-09-05
      • 1970-01-01
      相关资源
      最近更新 更多