zl程序教程

您现在的位置是:首页 >  工具

当前栏目

第二人生的源码分析(二十)显示人物名称

源码 分析 显示 名称 第二 人生 二十 人物
2023-09-14 09:10:40 时间
在第二人生里,每个人物显示都有一个名称,那么这个名称又是怎么样显示出来的呢?怎么样实现的呢?带着这两个问题,下面就去分析第二人生里面的实现代码。它的人物名称显示如下:
蔡军生 2008/01/24 QQ:9073204 深圳
从上面的图片上,可以看到人物的头上有一个名称显示,用来标识人物角色。要显示这个人物名称,肯定是在二维的空间里显示的。每个人都有一个名称显示,很多人在一起时,就需要显示多名称。因此,在第二人生里把名称的显示和角色的显示是分离的。调用下面的代码来显示名称:
1、LLPipeline::renderGeom()
2、render_hud_elements()
3、LLHUDObject::renderAll()
 
这个函数的代码如下:
#001 void LLHUDObject::renderAll()
#002 {
#003       LLHUDObject *hud_objp;
#004      
#005       hud_object_list_t::iterator object_it;
#006       for (object_it = sHUDObjects.begin(); object_it != sHUDObjects.end(); )
#007       {
#008              hud_object_list_t::iterator cur_it = object_it++;
#009              hud_objp = (*cur_it);
#010              if (hud_objp->getNumRefs() == 1)
#011              {
#012                     sHUDObjects.erase(cur_it);
#013              }
#014              else if (hud_objp->isVisible())
#015              {
#016                     hud_objp->render();
#017              }
#018       }
#019 }
在第16行里显示人物的名称。
由于在这个类里会先调用LLHUDObject::addHUDObject()函数添加人物名称显示对象LLHUDText,这样在渲染时就会把名称显示出来。