【问题标题】:Sprite Kit - Apply static impulseSprite Kit - 应用静态脉冲
【发布时间】:2014-02-05 02:53:37
【问题描述】:

我有一个简单的例子,我将脉冲应用到触摸节点,如下所示:

[_bird.physicsBody applyImpulse:CGVectorMake(0, 15)];

我想要的是应用“静态”冲动。

让我解释一下: 当我的节点处于下降阶段时,由于重力,施加脉冲会更加困难,并且脉冲将应用 dy 5 而不是 15(例如)。

在另一种情况下,当我的节点没有下落(即在地面上)时,如果我快速点击多次,我的冲动似乎被成倍增加而不是被添加,导致我的节点也到达“屋顶”的方式快。

我想申请相同数量的dy,无论何时。

有没有办法做到这一点?

提前感谢您的帮助。

【问题讨论】:

    标签: ios sprite-kit gravity


    【解决方案1】:

    为了使脉冲对精灵节点具有相同的效果,无论其状态如何,您可以尝试将其velocity 属性设置为零。像这样:

    _bird.physicsBody.velocity = CGVectorMake(0,0);
    [_bird.physicsBody applyImpulse:CGVectorMake(0, 15)];
    

    这应该使“鸟”(Flappy Bird?)在任何情况下都以相同的方式表现。

    【讨论】:

    • 天哪 _bird.physicsBody.velocity = CGVectorMake(0,0);是我一直在寻找的东西,谢谢男人
    • 是的,它以静态脉冲工作,但不能左右移动
    • @JugalKBalara 你是什么意思?你想要让它向左/向右移动的冲动吗?然后,您还应该为 x 变量提供一个值。例如。 [_bird.physicsBody applyImpulse:CGVectorMake(15, 15)];你也可以用这个发布一个新问题。
    • 感谢@ZeMoom [_bird.physicsBody applyImpulse:CGVectorMake(15, 15)];此行代码有效,但始终向右移动
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多