我正在尝试以恒定的速度且不反弹的方式将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;

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

如何完全禁用弹跳?

最佳答案

经过反复试验,我发现如果要精确定位元素,则不建议使用物理引擎。这就是为什么在我的棋盘游戏中,我重新实现代码以进行定位

关于box2d - 恢复原状的SKPhysicsBody仍然弹跳,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24315250/

10-11 16:21