【问题标题】:Move a Sprite Kit Physics Body to where the user touched without going through将 Sprite Kit 物理主体移动到用户触摸的位置而不经过
【发布时间】:2014-03-30 00:18:47
【问题描述】:

我有一个精灵套件物理体,我想通过将其移向用户在 touchesBegan 和 touchesMoved 中触摸的位置来进行触摸来控制它。我已经尝试过 SKAction 动作,让我们看看它不适合我的目的。我已经尝试过 applyImpulse 并且它适合我的目的,但是每次它超出时都会导致速度导致它每次都通过该位置,并且如果我创建新位置,则对象会来回飞来飞去。我希望它稍微快一点地跟随当前的触摸,而不是慢慢地爬向用户的手指。有没有一种简单的方法可以让对象在用户触摸时跟随触摸并在用户放手时停止移动,这将与 psrite 套件物理引擎配合得很好?我希望该对象将其他对象从它身上弹开,但不反弹自己。

【问题讨论】:

  • 我也尝试将对象的位置直接设置为触摸位置,但物理响应也不佳。我的意思是它不会让其他物体从它上面反弹。
  • 显示 SKAction 的代码。你是什​​么意思“它不符合我的目的”?怎么回事?
  • 没有简单的方法,只有很多调整(冲动/力量)

标签: ios sprite-kit physics


【解决方案1】:

添加一些东西:

  1. 用于设置 Sprite 是否已分配新位置的布尔标志

  2. 一个 CGPoint 存储新的所需位置

  3. 一种检查精灵的位置是否足够接近被视为到达的 CGPoint 的方法

当触摸发出时,存储点并将布尔值设置为 YES,然后启动精灵上的力。

在更新方法中调用该检查器方法,如果您创建的布尔值是 YES,则调用该方法。

如果该检查返回 true,请将速度设置为零(或者以其他方式停止您认为合适的精灵)并将布尔值设置回 NO,以便检查方法停止触发。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多