游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1554|回复: 1

请教一下D3DIntersect进行地形碰撞的问题

[复制链接]

3

主题

24

帖子

294

积分

中级会员

Rank: 3Rank: 3

积分
294
发表于 2010-12-14 18:10:00 | 显示全部楼层 |阅读模式
float GetHeightBelow(float XPos, float YPos, float ZPos)
{
  BOOL  Hit;
  float u, v, Dist;
  DWORD FaceIndex;
  D3DXVECTOR3 vecPos;

  vecPos=D3DXVECTOR3(XPos,YPos,ZPos);

  D3DXIntersect(cl->map->m_pMesh,
                &vecPos,&D3DXVECTOR3(0.0f, -1.0f, 0.0f),
                &Hit, &FaceIndex, &u, &v, &Dist, NULL, NULL);
  if(Hit == TRUE)
    return YPos-Dist;
  return YPos;
}
我这样写了一个获取检测的地形的坐标的函数,但是进行的碰撞很不准确,我把算出的地形Y值赋值给人物,但是很乱,一会儿高一会儿低的。 请问,有达人知道是真么回事吗?在线等

6

主题

72

帖子

82

积分

注册会员

Rank: 2

积分
82
发表于 2010-12-14 21:19:00 | 显示全部楼层

Re:请教一下D3DIntersect进行地形碰撞的问题

D3DXIntersect的第二个和第三个参数应该以第一个参数Mesh的局部坐标系为准,LZ的地形是不是在程序中经过了一些平移,缩放等的变换?

http://bbs.gameres.com/showthread.asp?threadid=139761
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-5-30 11:33

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表