基于滑动角度和速度的 cocos 2d 中 Sprite 的最终位置

Posted

技术标签:

【中文标题】基于滑动角度和速度的 cocos 2d 中 Sprite 的最终位置【英文标题】:Final position of a Sprite in cocos 2d based on swipe angle and speed 【发布时间】:2013-05-03 09:49:47 【问题描述】:

如何在cocos 2d中获取Sprite以一定速度和角度滑动时的最终位置?

【问题讨论】:

你需要看一下 ccTouchEnded 函数并将最终点转换为你的空间坐标。这将为您提供一个点,然后您可以将其用作信息。如果问题是关于最终位置的,那么速度和角度不是必需的,因为您只想知道最终位置,这是由创建精灵的“启用触摸”层为您完成的。 在滑动时,我的精灵正在从当前位置跳到新位置。新位置是根据速度和角度计算的。我知道如何找到滑动的角度和速度。那么如何获得最终位置..? 【参考方案1】:

您是否要在屏幕上“投掷”精灵?我问,因为你提到了角度和速度。

如果是这样,您可能可以忽略角度并更多地关注滑动的长度和方向,因为这将为您提供一个可以应用于精灵的向量。

ccTouchBegan中需要存储触摸的初始点坐标。

ccTouchEnded 中,您将拥有最终的接触点,因此您可以使用一点毕达哥拉斯来计算这两个点之间的距离。您现在有了滑动的长度。

要计算速度,您需要计算触摸和释放之间的时间,并使用它来计算每个时间戳触摸移动了多少单位。

精灵的静止点将取决于你如何将这个力施加到你的精灵上。如果您将滑动矢量应用于精灵,我想您正在根据update 期间的速度更新精灵位置?要检查位置的位置,您需要应用您在那里使用的相同公式,但传入一个任意时间戳来代替delta time。这将让您看到对象在 T 秒内结束的位置。

随着 T 值的增加多次调用它,直到精灵的位置静止并且您拥有静止点。

【讨论】:

以上是关于基于滑动角度和速度的 cocos 2d 中 Sprite 的最终位置的主要内容,如果未能解决你的问题,请参考以下文章

cocos2d-x CCScrollView和CCTableView的使用

Cocos2D 动画问题

修改 Cocos2D 滑动菜单网格添加额外的 BUY ME 按钮

浅谈Cocos2d-js ListView滑动防止误触

Cocos2D Sprite 动画 - 仅在屏幕上滑动的 Sprite

增加速度/速度,cocos2D