SpriteKit - 停止对象弹跳

use*_*149 2 ios sprite-kit

我是如何停止并从屏幕顶部落到屏幕底部的物体弹跳.这是该对象的代码:

- (SKNode*)addRock {
    SKSpriteNode* rock = [SKSpriteNode spriteNodeWithImageNamed:@"asteroid"];
    rock.position=CGPointMake ([self makeRandomXWBetween:0 and:self.size.width],self.size.height);
    rock.name = @"rock";
    rock.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:rock.size];
    rock.physicsBody.usesPreciseCollisionDetection = YES;
    rock.physicsBody.allowsRotation = NO;
    [self addChild:rock];

    return self;
}
Run Code Online (Sandbox Code Playgroud)

}

在此先感谢您的帮助.

最好的问候,路易斯.

ZeM*_*oon 7

您需要设置SKPhysicsBody的恢复属性.

rock.physicsBody.restitution = 0.0;
Run Code Online (Sandbox Code Playgroud)

根据Apple的文档:

此属性用于确定物理体在从另一个物体反弹时失去多少能量.该属性必须是介于0.0和1.0之间的值.默认值为0.2.

  • 恢复财产是正确的答案.如果想让对象在某些联系人而不是其他联系人上反弹,只需稍微详细说明一旦设置了联系人委托方法,就可以在检测到所述联系人时将速度设置为0,0. (3认同)