嗨,我正在制作一款无尽的滚动游戏,角色在进入游戏时基本上会避开障碍物,他可以跳过障碍物。我可以使所有工作正常进行,但是我发现角色纹理会在落地后稍微反弹。我希望精灵在降落后立即停止。我尝试将.restitution属性设置为0,但仍然看到它反弹。这是我的火柴人角色和边缘物理类别的设置代码
stickman.physicsBody?.dynamic = true
stickman.physicsBody?.allowsRotation = false
stickman.physicsBody?.usesPreciseCollisionDetection = true
stickman.physicsBody?.categoryBitMask = PhysicsCategory.Stickman
stickman.physicsBody?.collisionBitMask = PhysicsCategory.Edge
stickman.physicsBody?.contactTestBitMask = PhysicsCategory.Obstacle | PhysicsCategory.Edge
stickman.physicsBody?.restitution = 0
self.physicsWorld.gravity = CGVector(dx: 0, dy: -9.8)
physicsBody = SKPhysicsBody(edgeLoopFromRect: playableRect)
physicsWorld.contactDelegate = self
physicsBody?.categoryBitMask = PhysicsCategory.Edge
可播放的rect只是用于通用部署的屏幕边界。
有没有人遇到这个问题。我在其他帖子中找不到相同的问题。
最佳答案
还将您的精灵正在运行的物理物体的restitution
设置为0
。物理碰撞中的两个物理物体都必须恢复为0,以确保没有反弹。
关于ios - 如何阻止 Sprite 从特定表面弹起,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29086237/