2D物理计算到达具有线性拖动的点的时间

时间:2015-09-06 13:21:36

标签: box2d game-physics

我想对刚体施加一个力,使它在给定时间到达/截取一个点(Unity中的Box2D)。该系统目前已设置好,因此一个单位的力推动一个距离单位的阻力,并在此距离处阻止它。因此,10的力将使rb十个单位移动直到它停止。力量5将在 t1 时间内移动5个单位,而力量10将在 t2 时间内移动5个单位,特别是不到一半的时间。

我需要的是能够说,“此rb需要在 t 秒内移动 x 单位,因此应用 m ,“并获得满足此要求的力量。

Box2D的线性拖动提供非线性加速,我无法映射到任何可用的功能。如何生成一个返回所需力的方法?

编辑: 在足球比赛中,为了传递给移动的运动员,你需要使用拖曳球的轨迹来拦截以恒定速度行进的接收球员的轨迹。这个过程可能很慢,需要在接收器之前,或者更快,更少前瞻。我可以选择一个时间并计算距离,但不是在那个时间内让球在那个距离内移动所需的力,并且拖曳有效。

1 个答案:

答案 0 :(得分:0)

前段时间我遇到了与你相同的问题,我的建议是避免使用武力 - 而不是考虑应用冲动

def index

  if params[:category].blank?
   @ads = Ad.all.order("created_at DESC").paginate(:page => params[:page], :per_page => 10)
  else
   @category_id = Category.find_by(name: params[:category]).id
   @ads = Ad.where(category_id: @category_id).order("created_at DESC").paginate(:page => params[:page]) 
  end

  if params[:search]
   @ads = Ad.search(params[:search]).order("created_at DESC").paginate(:page => params[:page], :per_page => 10)
  else
   @ads = Ad.order("created_at DESC").paginate(:page => params[:page])
  end

end

Box2d linearImpulse 立即修改身体的速度。当我们谈论velocity 不强迫时,在需要达到某个位置的时候有一些速度或速度来计算时间真的很简单。线性冲动本身就是对质量等的关注,所以你不需要关心它。

我建议您使用nice article about box2d applicable forces,以便更容易理解该主题。