基于滑动角度和速度的 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 滑动菜单网格添加额外的 BUY ME 按钮