游戏开发论坛

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

根据现在的坐标算出地形模型上的玩家的Y坐标的问题

[复制链接]

29

主题

107

帖子

107

积分

注册会员

Rank: 2

积分
107
发表于 2010-9-4 17:10:00 | 显示全部楼层 |阅读模式
为什么玩家的Y坐标一直都没有变呢
我想求得地形模型上的高度,可我刚试了一下,高度一直都没有变化,按道理不回这样啊
下面是算模型上三角形的坐标
还有就是如果我地形模型进行过缩放操作,会对坐标影响吗
VOID rayHCollision(CPlayer* player)
{
        D3DXVECTOR3 tmpPos = *player-&gtos();
        tmpPos.y -= 500;
        D3DXVECTOR3 ray  = *player->Pos()-tmpPos;
        D3DXVECTOR3 cross;
        BOOL hit;
        DWORD indexFace;
        FLOAT u,v;
        D3DXIntersect(m_pMesh, &tmpPos, &ray,&hit,&indexFace,&u,&v,NULL,NULL,NULL);
        if(hit)
        {
                ULONG index1,index2,index3;
                D3DXVECTOR3 *v1,*v2,*v3;
                if(m_IB_Desc.Format == D3DFMT_INDEX16)
                {
                        index1 = (WORD)iData[3 * indexFace];
                        index2 = (WORD)iData[3 * indexFace + 1];
                        index3 = (WORD)iData[3 * indexFace + 2];
                }
                else if(m_IB_Desc.Format == D3DFMT_INDEX32)
                {
                        index1 = *(DWORD*)iData[2 * (3 * indexFace)];
                        index2 = *(DWORD*)iData[2 * (3 * indexFace + 1)];
                        index3 = *(DWORD*)iData[2 * (3 * indexFace + 2)];
                }
                v1 = (D3DXVECTOR3*)(vData + index1 * step);
                v2 = (D3DXVECTOR3*)(vData + index2 * step);
                v3 = (D3DXVECTOR3*)(vData + index3 * step);
                cross = *v1 + u * (*v2 - *v1) + v * (*v3 - *v1);
                player->SetHigh(cross.y);
        }
        else
                player->Pos()->y = player->Pos()->y+5;
}

1

主题

266

帖子

280

积分

中级会员

Rank: 3Rank: 3

积分
280
发表于 2010-9-5 11:08:00 | 显示全部楼层

Re:根据现在的坐标算出地形模型上的玩家的Y坐标的问题

“如果我地形模型进行过缩放操作,会对坐标影响”
——当然会。缩放模型就等于缩放模型坐标
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-7 04:39

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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