Ios 围绕平铺贴图创建边界
我已经创建了一个由367x367的多个精灵节点组成的平铺贴图。我这样创建此地图:Ios 围绕平铺贴图创建边界,ios,swift,sprite-kit,Ios,Swift,Sprite Kit,我已经创建了一个由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) *
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)
}
}
var i=0的;i
在上面的示例中,乘数为27,贴图大小为10000x1000
这将按预期创建地图,但我希望此地图具有玩家无法离开的边界。我知道如何创建边界,但我不确定用什么值初始化物理体。
我已经尝试过:SKPhysicsBody(rectangleOfSize:map.mapSize)
但是这产生了非常错误的结果
我也试过:SKPhysicsBody(edgeLoopFromRect:CGRectMake(0,0,map.mapSize.width,map.mapSize.height))
它构建了一个物理实体,就像它应该的那样(我已经显示了physics=TRUE),但是物理实体似乎随着播放器移动(我让播放器移动,并且将地图放在播放器的中心)。你可以看到我在这里的意思:(这有点难看,但那条绿线是物理体的边界。当平铺贴图结束时(在它变成灰色的地方),物理体应该停止,因为这是不允许玩家再移动的地方)。
如果您需要更多的代码,请留下评论(我相信我包含了任何相关的内容)。在修改了一些代码后,我发现一个解决方法是将physicsBody添加到我的地图中,而不是场景中。这是一个相当容易的解决方案,所以我很惊讶我没有早点想到。 考虑到这一点,我已经回答了自己的问题,不再需要帮助