📄 tree.cpp
字号:
#include ".\tree.h"
CTree::CTree(SceneManager* mSceneMgr , CTerrain* terrain)
{
m_pSceneManager=mSceneMgr;
m_pSnTreeRoot1 = mSceneMgr->getRootSceneNode()->createChildSceneNode("treeRoot1");
m_pSnTreeRoot1->showBoundingBox(false);
// setPosArray(terrain);
//setTreeScene();
}
CTree::~CTree(void)
{
}
void CTree::setPosArray(CTerrain* terrain)
{
for(int i=0 ; i<500 ; i++)
{
float x=rand()%1500+200,z=rand()%1500+200;
m_vecTreePos1.push_back(Ogre::Vector3(x,terrain->getHeight(x,z),z));
}
//m_vecTreePos1.push_back(Ogre::Vector3(500,terrain->getHeight(500,200),200));
//m_vecTreePos1.push_back(Ogre::Vector3(450,terrain->getHeight(450,210),210));
//m_vecTreePos1.push_back(Ogre::Vector3(320,terrain->getHeight(320,220),220));
//m_vecTreePos1.push_back(Ogre::Vector3(200,terrain->getHeight(200,230),230));
//m_vecTreePos1.push_back(Ogre::Vector3(300,terrain->getHeight(300,240),240));
//m_vecTreePos1.push_back(Ogre::Vector3(420,terrain->getHeight(420,250),250));
//m_vecTreePos1.push_back(Ogre::Vector3(550,terrain->getHeight(550,320),320));
//m_vecTreePos1.push_back(Ogre::Vector3(260,terrain->getHeight(260,220),220));
//m_vecTreePos1.push_back(Ogre::Vector3(280,terrain->getHeight(280,400),400));
//m_vecTreePos1.push_back(Ogre::Vector3(290,terrain->getHeight(290,200),200));
//m_vecTreePos1.push_back(Ogre::Vector3(300,terrain->getHeight(300,300),300));
}
void CTree::setTreeScene()
{
for(int i=0 ; i<m_vecTreePos1.size() ; i++)
{
char tmp[20];
sprintf(tmp, "tree%d", i); //命名不重复
SceneNode* snTree=NULL;
snTree=m_pSnTreeRoot1->createChildSceneNode(tmp);
snTree->attachObject(m_pSceneManager->createEntity(tmp, "tree.mesh"));
snTree->scale(1,float(rand()%60+41)/100.0f,1);
snTree->translate(m_vecTreePos1[i]);
snTree->showBoundingBox(false);
AxisAlignedBox aabTree=snTree->_getWorldAABB();
//aabTree.setExtents(0.1,0.1,0.1,0.1,0.1,0.1);
aabTree.scale(Vector3(600.01,60.01,40.01));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -