恢复原状0的SKPhysicsBody仍然反弹

时间:2014-06-19 19:58:21

标签: box2d sprite-kit skspritenode skphysicsbody restitution

我正试图以恒定的速度放弃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 个答案:

答案 0 :(得分:1)

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