我要发帖 回复

新手上路

3

主题

19

积分

0

专家分

:

私信
发表时间 : 2008-5-17 20:18:00 | 浏览 : 1808    评论 : 2
我现在在做一个场景,里面加载有MD2人物模型。需要一个move函数来控制模型的移动,采用的方法是不断+步长,更新绘制模型的坐标。步长设为0.5f,但是模型的移动速度太快,700m5秒就跑完了!
    希望有经验的大虾给小弟建议下,怎样能很好的控制速度(不考虑使用延迟,影响系统)?

最近VR访客

tan_dunming 评论于2008-5-17 23:59:33
你在什么时候增加步长的?
比较好的办法是定时刷新 定时增加位移就用初中的物理知识
s += v * dT;
v += a * dT;
在这里控制好参数就可以了
追求卓越
lxddy 评论于2008-5-18 14:15:08
我没有用到速度,时间怎么控制?我是通过刷新起点坐标控制的移动。
if((int)qx!=0)
  {
             qdx=man.StartPoint[0]-qxa/qx*stx;//取x方向单位步长 qxa为qx的绝对值,qx为方                                         / /向起点与终点坐标之差
  }
  if ((int)qz!=0)
  {
    qdz=man.StartPoint[2]-qza/qz*stz;//取z方向单位步长
}         
//------------------------------------------------------------------------------------------------
//碰撞检测和绕行
  if(m_EvmCreat->IsCollision(qdx,man.StartPoint[1],qdz))
  {
          float temp=qdx;qdx=x;                                                        //X方向回原点
          if(!m_EvmCreat->IsCollision(qdx,man.StartPoint[1],qdz));                        //没障碍,绕行
          else
          {
                  qdx=temp;
                  qdz=z;                                                                                        //z方向回原点
          }                               
  }
//------------------------------------------------------------------------------------------------
  SetManStart(i, qdx,qdz);//刷新man的起点位置

手机版|VR开发网 统计 津ICP备18009691号
网安备12019202000257

GMT+8, 2021-6-19 04:23 PM

返回顶部