ios - SKSpriteNode 之间出现奇怪的间隙 - swift

标签 ios swift sprite-kit

注意:我试过这个答案:Gap between SKSpriteNodes in SpriteKit collision detection

在让我的游戏运行 5 分钟后,我的 SKSpriteNode 之间出现了间隙。这是我制作节点的代码:

let tileNode = SKSpriteNode(imageNamed: "world1Tile\(tileNumber).png")
tileNode.position.x = x
tileNode.position.y = y
tileNode.size.width = 128
tileNode.size.height = 128
tileNode.zPosition = 10
tileNode.physicsBody = SKPhysicsBody(rectangleOf: tileNode.size)
tileNode.physicsBody!.isDynamic = false
tileNode.physicsBody!.restitution = 0
tileNode.physicsBody!.allowsRotation = false
tileNode.name = "Tile"
row.append(tileNode)

当我移除物理体时,它运行良好。这里有一些图片可以向您展示我的意思: With physics immediately taken.

这张图片有一个物理实体,是在运行应用程序后立即拍摄的。

This image was taken 5 minutes after running the app.

这张图片是在运行应用 5 分钟后拍摄的。

为什么会这样?我认为它与物理体有关,因为我的应用程序看起来与第一张图片完全一样,如果没有物理体,即使在运行应用程序后一个小时也是如此。我应该改变什么物理 body 属性来阻止这种情况发生?任何帮助将不胜感激。

最佳答案

不久前我遇到了类似的问题,平铺的节点之间出现了间隙(尽管我没有使用物理)。基于this answer ,我发现如果想要节点之间完美对齐,最好保证节点的位置以及节点的宽高都是整数。

我建议对 tileNode 位置的 xy 值进行四舍五入,看看它是否会有所不同。

关于ios - SKSpriteNode 之间出现奇怪的间隙 - swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44475379/

相关文章:

ios - 从 iOS 将视频分享到 Instagram feed

swift - 二元运算符 "+"不能应用于 Swift 中类型为 "CGFloat"和 "CGPoint"的操作数

ios - NSPredicate 针对 NSArray 中的嵌套值

swift - SKSpitekit 节点之间未检测到碰撞

ios - 进入后台时AVAudioSession问题

ios - 无法从 appdelegate 推送 View Controller

ios - 如何创建一个只有两列(小时和分钟)的简单(自定义)时间选择器?

ios - 如何本地化邮件应用程序?

swift - 正则表达式 unicode 在 swift 中不起作用

Swift playground 显示错误的语句执行次数(forEach on array)