我的播放器是SKSpriteNode
。我正在使用CGVectors
和player.physicsBody!.applyImpulse()
移动它。这很好用,但是当我的玩家移动时,它似乎左右两侧都是口吃。所以为了解决这个问题,我尝试更改了一些physicsBody
属性。在update
函数中,我添加了以下代码行:player.physicsBody?.friction = 0
。这仍然没有改变。所以我认为这种口吃是由于球员触地而造成的。所以我在更新函数中添加了一行新代码:player.position.y += 1
。当然,由于这个解决方案的性质,玩家现在上下结巴,但能够左右移动没有问题。这告诉我,当玩家接触地面时,问题在于某种类型的力量。如何阻止玩家口吃?
编辑:我认为知道我的地面"实际上是一堆SKSpriteNode
连续放在一起,使它看起来像一个tilemap。
编辑:使用以下代码行设置我的播放器物理主体:player.physicsBody = SKPhysicsBody(rectangleOf: player.size)
答案 0 :(得分:1)
我找到了口吃的解决方案,只需将这行代码player.physicsBody = SKPhysicsBody(rectangleOf: player.size)
更改为一个圆圈即可。通过将physicsBody设置为一个圆圈,所有的口吃都消失了,但现在我无法让我的玩家站在地面上的效果。
答案 1 :(得分:0)
您可能正在使用太多的spritenodes尝试使用SKTileMapNode。在性能方面将极大地帮助您。 youtube上有教程和raywenderlich如何使用它们。只是观看,你会发现使用起来非常简单