【问题标题】:SKSpriteNode bouncing when it shouldn'tSKSpriteNode 不应该弹跳
【发布时间】:2013-10-05 15:21:16
【问题描述】:

我正在使用新的 API Sprite Kit 开发 2D 游戏。问题是,虽然将精灵节点的恢复设置为 0,但它会反弹一点。我怎样才能完全禁用弹跳?

【问题讨论】:

    标签: ios7 bounce sprite-kit restitution skspritenode


    【解决方案1】:

    您需要为将要相遇的两个对象设置恢复原状。

        self.world = [SKNode node];
        [self addChild:self.world];
    
        self.backgroundColor = [SKColor colorWithRed:0.15 green:0.15 blue:0.3 alpha:1.0];
    
        self.physicsBody = [SKPhysicsBody bodyWithEdgeFromPoint:CGPointZero toPoint:CGPointMake(500, 0)];
        self.physicsBody.restitution = 0.0;
    
        self.ball = [SKSpriteNode spriteNodeWithColor:[SKColor redColor] size:CGSizeMake(40, 40)];
        self.ball.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake(40, 40)];
        self.ball.physicsBody.density = 100;
        self.ball.physicsBody.restitution = 0.0;
        self.ball.position = CGPointMake(200, 300);
        [self.world addChild:self.ball];
    

    【讨论】:

    • @DogCoffee 谢谢,但这并没有完全解决我的问题。即使restitutions 都设置为零,我仍然可以看到一些“颤抖”。类似的问题在这里(stackoverflow.com/questions/24315250/…)。您知道如何完全“禁用”弹跳吗?
    【解决方案2】:

    我发现按比例缩小质量很有效!

    self.ball.physicsbody.mass=0.2;
    

    使用这样的小数字,它不会反弹,您还必须相应地调整重力和冲量。我发现0.2 最适合使用-20 的重力。

    无论出于何种原因,即使恢复为 0,平均大小的对象也足以弹跳。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多