terrain.cpp
来自「本人刚学游戏编程时开发的一个游戏项目《魔幻森林》中的地图编辑器源码」· C++ 代码 · 共 33 行
CPP
33 行
#include ".\terrain.h"
CTerrain::CTerrain(SceneManager* mSceneMgr)
{
m_fRayOriginHeight=500;
m_pSceneManager=mSceneMgr;
m_pSceneManager->setWorldGeometry("terrain.cfg"); //加载地形
m_pRaySceneQuery = m_pSceneManager->createRayQuery(Ray(Vector3(500,500,500), Vector3::NEGATIVE_UNIT_Y));
}
CTerrain::~CTerrain(void)
{
}
float CTerrain::getHeight(float posX, float posZ)
{
Ray ray;
ray.setOrigin(Vector3(posX, m_fRayOriginHeight, posZ)); //设置发射源位置
ray.setDirection(Vector3::NEGATIVE_UNIT_Y); //设置发射方向为负Y轴
m_pRaySceneQuery->setRay(ray); //设置查询的射线
RaySceneQueryResult& qryResult = m_pRaySceneQuery->execute(); //发射射线,并接收返回的结果
RaySceneQueryResult::iterator i = qryResult.begin();
if (i != qryResult.end() && i->worldFragment)
{
return i->worldFragment->singleIntersection.y;
}
else
{
return 0;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?