首页 文章

恢复原状 0 的 SKPhysicsBody 仍然反弹

提问于
浏览
3

我正试图以恒定的速度放弃 SKSpriteNode 并且没有弹跳。

这是我正在使用的代码:

SKSpriteNode *floor = [SKSpriteNode spriteNodeWithColor:[UIColor clearColor] size:CGSizeMake(self.size.width, 1)];
floor.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:floor.size];
floor.physicsBody.restitution = 0.0f;
floor.physicsBody.dynamic = NO;
floor.physicsBody.allowsRotation = NO;

SKSpriteNode* block = [SKSpriteNode spriteNodeWithTexture:[SKTexture textureWithImageNamed:imageName]];
block.position = CGPointMake(160, 300);
block.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake(block.size.width - 2, block.size.height)];
block.physicsBody.dynamic = dynamic;
block.physicsBody.restitution = 0.0f;
block.physicsBody.allowsRotation = NO;

当我改变恢复值时,我可以看到块弹跳的差异,但是当它为零时它仍会反弹一点点。当堆叠多个块时,下面的块也会反弹一点。

我怎么能完全禁用弹跳?

1 回答

  • 1

    经过一些反复试验后,我发现如果你想要准确定位你的元素,就不应该使用物理引擎。这就是为什么在我的棋盘游戏中,我有 re-implemented 代码才能制作正面

相关问题