【问题标题】:How to throw object on swipe without box2d如何在没有box2d的情况下在滑动时抛出对象
【发布时间】:2014-06-25 16:51:33
【问题描述】:

我正在开发基于滑动投掷物体的项目,我有石头精灵,用户会用石头打破随机出现在屏幕上的玻璃瓶。

例如。我在 ccp(512,225) 有一个石头精灵,这是固定的。现在,当用户触摸对象时,我得到起点,而在 touchend 上,我得到终点。然后我也计算距离。现在我必须根据滑动方向和滑动速度扔石头。我怎样才能做到这一点。

我想在没有任何物理引擎的情况下做到这一点

【问题讨论】:

  • 我认为您要研究的内容称为“光线投射”permadi.com/tutorial/raycast
  • 为什么你不尝试物理引擎...它会更容易
  • 我还没有使用过Box2d,也没有足够的时间在Box2d中进行研发,否则box2d没有问题。

标签: ios cocos2d-x cocos2d-x-2.x


【解决方案1】:

如果您不介意石头不会加速,那么您可以使用CCMoveTo。可以通过调度一个函数来计算操作的持续时间,该函数以所需精度的间隔测量滑动的持续时间。这一切都是基于你在触摸结束后扔石头的假设。

【讨论】:

  • 我也计算了滑动时间,但我必须根据滑动方向和滑动速度扔石头。如何在滑动方向和滑动速度上应用 moveto。
  • 你有一点来自touchended,对吧?然后只需在该点上使用 CCMoveTo,以及计算出的持续时间,瞧
  • 我有终点,我在 moveto 中使用它,例如:stone->runAction(ccMoveTo::create(duration,endpoint)); 但是如何根据滑动距离传递“持续时间”?例如:我在 0.02 时间内刷了 500 像素,现在我必须计算持续时间,以便 1)更多的距离=更快的速度和 2)更少的刷卡时间 =更快的速度。因此,用户在 0.02 秒内刷 500 像素,然后在 0.05 秒内刷 500 像素会更快。请帮帮我
  • 我不知道你所说的持续时间是什么意思?如果你有 0.02 秒的持续时间,那么你有移动一块石头需要多长时间,对吧?我不明白你想计算更多。
猜你喜欢
  • 1970-01-01
  • 2018-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-15
  • 1970-01-01
相关资源
最近更新 更多