首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xcode - Swift SpriteKit: SKTileMapNode有“物理鸿沟”

Xcode - Swift SpriteKit: SKTileMapNode有“物理鸿沟”
EN

Stack Overflow用户
提问于 2017-02-02 15:25:35
回答 1查看 512关注 0票数 0

我在玩SpriteKit和TileMapNode,我有一个恼人的问题。

这就是它应该是什么样子。

这就是它在模拟器/设备中的实际外观。

空白是可怕的,我不知道如何摆脱它们。在资源的"Sprite Atlas - Part“中,我的磁贴大约是70x70,我已经将我的磁贴节点配置为0.5的比例和70x70的磁贴大小。

在测试一些案例时,我发现这部分代码触发了错误,但我不知道哪里会出错。将SKPhysicsBody大小更改为较小的大小没有任何帮助。

代码语言:javascript
复制
guard let tilemap = childNode(withName: "LevelGround") as? SKTileMapNode else { return }            
let tileSize = tilemap.tileSize
        let halfWidth = CGFloat(tilemap.numberOfColumns) / 2.0 * tileSize.width
        let halfHeight = CGFloat(tilemap.numberOfRows) / 2.0 * tileSize.height
        for row in 0..<tilemap.numberOfRows {
            for col in 0..<tilemap.numberOfColumns {
                if tilemap.tileDefinition(atColumn: col, row: row) != nil {
                    let x = CGFloat(col) * tileSize.width - halfWidth
                    let y = CGFloat(row) * tileSize.height - halfHeight
                    let rect = CGRect(x: 0, y: 0, width: tileSize.width, height: tileSize.height)
                    let tileNode = SKShapeNode(rect: rect)
                    tileNode.position = CGPoint(x: x, y: y)
                    tileNode.physicsBody = SKPhysicsBody(rectangleOf: CGSize(width: 70, height: 70), center: CGPoint(x: tileSize.width / 2.0, y: tileSize.height / 2.0))
                    tileNode.physicsBody?.isDynamic = false
                    tileNode.physicsBody?.collisionBitMask = 2
                    tileNode.physicsBody?.categoryBitMask = 1
                    tileNode.physicsBody?.contactTestBitMask = 2 | 1
                    tileNode.name = "Ground"
                    tilemap.addChild(tileNode)
                }
            }
        }
EN

回答 1

Stack Overflow用户

发布于 2017-02-02 17:02:17

代码语言:javascript
复制
tileNode.strokeColor = .clear

解决了问题

更新:问题未解决...刚移动:/

当检查时,如果地面和玩家处于接触状态,每个新的瓷砖状态都在“接触”和“无接触”之间切换。当使用立方体而不是圆时,立方体开始旋转。看起来,立方体的角被卡在了瓷砖之间的最小空间上。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41996383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档